【问题标题】:Building a Spring with Maven project's structure使用 Maven 项目结构构建 Spring
【发布时间】:2014-12-26 19:15:37
【问题描述】:

我请求有关使用 Maven 项目结构构建 Spring 的帮助。我已将项目的文件夹层次结构放入:

C:\Documents and Settings...\Documents\workspace-sts-3.6.2.RELEASE\BuildWithMaven\src\main\java\newProject

在那个目录中,我有一个 pom.xml,其内容如下:

http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 org.springframework GS-Maven 罐 0.1.0

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>2.1</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <transformers>
                            <transformer
                                implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                <mainClass>newProject.HelloWorld</mainClass>
                            </transformer>
                        </transformers>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

还有两个简单的类 Greeter.java(实现)和 HelloWorld.java(主类)。

我应该把带有主类的 MANIFEST.MF 放在哪里?

我已经运行了 mvn compile、mvn package、mvn install 命令并得到“没有要编译的类”消息。我确实知道我需要一份清单,但我应该把它放在哪里以及在哪里准确地指出什么?

提前感谢您的帮助。

【问题讨论】:

  • 您的 pom.xml 不完整。您的 pom 不应在 BuildWithMaven\src\main\java\newProject 中,而是在 BuildWithMaven 中。
  • 论坛上居然是这样发的;事实上,它确实有 maven.apache.org/POM/4.0.0" xmlns:xsi="w3.org/2001/XMLSchema-instance" xsi:schemaLocation="maven.apache.org/POM/4.0.0 maven.apache.org/maven-v4_0_0.xsd"> 4.0.0org.springframeworkgs-mavenjar0.1.0部分。问题一定出在 Manifest 上。
  • 请您十个然后将正确的(整个)pom 放入您的问题中吗?请注意 pom 必须在项目根目录中,而不是在 src/main/java/{package} 中。
  • 我认为您的清单没有问题。您的 pom.xml 的位置可能有问题。
  • 正如我在最初的帖子开头所指出的,pom.xml 位于根目录中,在本例中为 newProject。我在问在哪里放置 MANIFEST.MF。

标签: eclipse spring maven


【解决方案1】:

感谢您尝试帮助我!我已经解决了这个问题。问题是: 1. artifactId 是应用名称。 2.MANIFEST.MF 必须至少有一行: Main-Class: src.main.java.hellolanet.HelloPlanet 3. Maven 不创建(至少在这一点上)清单。程序员(惊喜!)需要在资源文件夹中创建它(与 java 文件夹处于同一级别。之后,发出 java -jar HelloPlanet-0.1.0.jar 命令运行 jar 的内容。就是这样。这里是输出:

[INFO] Scanning for projects...
   [INFO]                                                                         
   [INFO] ------------------------------------------------------------------------
   [INFO] Building HelloPlanet 0.1.0
   [INFO] ------------------------------------------------------------------------
   [INFO] 
   [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ HelloPlanet ---
   [WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
   [INFO] Copying 1 resource
   [INFO] 
   [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ HelloPlanet ---
   [INFO] Nothing to compile - all classes are up to date
   [INFO] 
   [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @   HelloPlanet ---
   [WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
   [INFO] skip non existing resourceDirectory C:\Documents and Settings\...\Documents\workspace-sts-3.6.2.RELEASE\BuildWithMaven\src\test\resources
   [INFO] 
   [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ HelloPlanet ---
   [INFO] No sources to compile
   [INFO] 
   [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ HelloPlanet ---
   [INFO] No tests to run.
   [INFO] 
   [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ HelloPlanet ---
   [INFO] 
   [INFO] --- maven-shade-plugin:2.1:shade (default) @ HelloPlanet ---
   [INFO] Replacing original artifact with shaded artifact.
   [INFO] Replacing C:\Documents and Settings\...\Documents\workspace-sts-3.6.2.RELEASE  \BuildWithMaven\target\HelloPlanet-0.1.0.jar with C:\Documents and Settings\...\Documents\workspace-sts-3.6.2.RELEASE\BuildWithMaven\target\HelloPlanet-0.1.0-shaded.jar
   [INFO] ------------------------------------------------------------------------
   [INFO] BUILD SUCCESS
   [INFO] ------------------------------------------------------------------------
   [INFO] Total time: 4.141 s
   [INFO] Finished at: 2014-12-30T11:00:58-05:00
   [INFO] Final Memory: 7M/19M
   [INFO] ------------------------------------------------------------------------


   C:\Documents and Settings\...\Documents\workspace-sts-3.6.2.RELEASE\Buil
   dWithMaven>mvn package > mvn-package.txt
   C:\Documents and Settings\...\Documents\workspace-sts-3.6.2.RELEASE\Buil
   dWithMaven>cd target

   C:\Documents and Settings\...\Documents\workspace-sts-3.6.2.RELEASE\Buil
   dWithMaven\target>java -jar HelloPlanet-0.1.0.jar > mvn-jar.txt

   C:\Documents and Settings\...\Documents\workspace-sts-3.6.2.RELEASE\Buil
   dWithMaven\target>
   C:\Documents and Settings\...\Documents\workspace-sts-3.6.2.RELEASE\Buil
   dWithMaven>mvn package > mvn-package.txt
   C:\Documents and Settings\...\Documents\workspace-sts-3.6.2.RELEASE\Buil
   dWithMaven>cd target

   C:\Documents and Settings\...\Documents\workspace-sts-3.6.2.RELEASE\Buil
   dWithMaven\target>java -jar HelloPlanet-0.1.0.jar > mvn-jar.txt

   C:\Documents and Settings\...\Documents\workspace-sts-3.6.2.RELEASE\Buil
   dWithMaven\target>

Maven 与 Ant 有点不同。此外,如果没有 Internet 连接,则不会创建带阴影的 jar(惊喜!)。现在的问题是配置本地存储库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-15
    • 2015-12-24
    • 1970-01-01
    • 1970-01-01
    • 2023-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多