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

标签 java maven

我对 Maven 还是个新手,所以为了熟悉它的工作原理,我一直在浏览 Internet 上的工作示例。我遇到了这个:

<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 为您解决依赖关系?

谢谢,感谢任何帮助。

最佳答案

此插件配置为在 jar 的 list 文件中创建类路径条目。此外,它还将创建一个具有 startupClass 属性值的 MainClass 条目。此外,它会在添加到类路径条目的每个 Maven 依赖项前加上存储在 app.lib.dir 属性中的值。

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

尽管我想指出,如果没有 节点,该插件将不会将 classPath 条目添加到 list 文件中。至少它不会与我的 eclipse/maven 版本一起使用。我建议将 2.4 添加到插件定义中。

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

关于java - 有人可以解释这个 maven-jar-plugin 配置吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21943635/

相关文章:

android - 如何上传多个android文件(每种口味一个)

java - 如何为 gmaven 插件设置 JDK 版本?

java - 来自 Eclipse 的 Spring Boot maven 项目在 Intellij 中不起作用

java - 在对象中保存 session 属性(Java)

java - 注入(inject) HttpServletRequest

java - Maven War 插件 Websphere

Maven:使用 SNAPSHOT 针对版本范围进行开发,但针对固定版本进行发布

java - 从数组列表访问数组

java - 如何使用 e.getSource() 为按钮编写 'count'?

java - Camel reSTLet 在 POST 之后终止而不是返回主体