【问题标题】:Maven Producing Empty JARMaven 生产空 JAR
【发布时间】:2011-06-12 02:10:30
【问题描述】:

我有以下 pom 文件:

<build>
    <defaultGoal>package</defaultGoal>
    <sourceDirectory>src/web</sourceDirectory>

    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.0.2</version>
            <configuration>
                <includes>
                    <include>src/web/**/*.java</include>
                </includes>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <outputDirectory>lib</outputDirectory>
            </configuration>
        </plugin>
    </plugins>
</build>

我的源文件位于 src/web/org/myCompany/ 文件夹中。当我运行 pom 文件时,我得到了一个没有类文件的 JAR。我指定源目录的方式有什么问题?我没有收到任何错误消息,只是一个空 JAR(带有一些 META-INF 文件)。

在旁注中,为什么 maven 在 maven 编译器插件上同时具有 &lt;sourceDirectory&gt; 标签和 &lt;include&gt; 标签?它们似乎是多余的(除了 include 标签允许多个源目录)。

【问题讨论】:

  • 你不需要设置 sourceDirectory 并包含在 maven-compiler-plugin 中吗?你的源文件应该在 src/main/java 下。

标签: java maven-2 jar


【解决方案1】:

如果没记错的话,你不需要包含。 sourceDirectory 规范应该足够了。然后运行

 mvn clean package

【讨论】:

  • 我需要像 src/web/org/myCompany 这样的东西吗?或者可能是 src/web/org/myCompany/**?
  • 你能看看你的目标目录吗?有没有 .class 文件?
  • Target\classes 目录为空
【解决方案2】:

在删除其他人指出的&lt;includes&gt; &lt;configuration&gt; 部分后,使用最新版本的maven compiler plugin(即2.3.2)试试这个怎么样?

无论如何,我认为&lt;includes&gt; 将是&lt;sourceDirectory&gt; 中的一个过滤器,因此不能再次指定src/web

【讨论】:

  • 我将编译器版本改为2.3.2。问题仍然存在。然后,我删除了编译器插件下的包含和配置,并得到一个关于配置是强制性的错误。然后我从我的 pom 文件中删除了整个 maven-compiler-plugin 条目,构建开始正常工作。
猜你喜欢
  • 2011-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-07
  • 1970-01-01
  • 1970-01-01
  • 2014-11-21
  • 2018-07-12
相关资源
最近更新 更多