有人可以解释这个maven-jar-plugin配置吗?

时间:2014-02-21 19:36:28

标签: java maven

我还是maven的新手,所以要熟悉它是如何工作的,我一直在寻找互联网上的工作样本。我偶然发现了这个:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <archive>
            <manifest>
                <addClasspath>true</addClasspath>
                <mainClass>${startupClass}</mainClass>
                <classpathPrefix>${app.lib.dir}</classpathPrefix>
            </manifest>
        </archive>
    </configuration>
</plugin>

从我所知道的,看起来好像这个实际抓取外部引用并将它们包含在最终的JAR中,这没有任何意义,因为我认为使用maven的全部意义在于让maven解决你的依赖关系?

谢谢,感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

此插件配置为在jar的清单文件中创建类路径条目。此外,它将创建一个MainClass条目,其中包含startupClass属性的值。此外,它将为它添加到类路径条目的每个maven依赖项添加前缀,其值存储在app.lib.dir属性中。

我过去曾将这些与maven-dependency-plugin结合使用。我使用该插件将所有maven jar复制到lib文件夹,然后我使用你在那里的插件,就像你在我的清单文件中设置类路径和主类条目一样。

虽然我想指出没有&lt;版本/&gt; node,该插件不会将classPath条目添加到清单文件中。至少它不会与我的eclipse / maven版本有关。我建议添加&lt;版本&gt; 2.4&lt; / version&gt;到插件定义。

http://maven.apache.org/plugins/maven-jar-plugin/