gpt4 book ai didi

maven-2 - Maven 程序集插件未设置 MainClass list 设置

转载 作者:行者123 更新时间:2023-12-03 14:55:48 24 4
gpt4 key购买 nike

我有一个 maven 项目,它通过 maven assembly plugin 生成一个 jar。我想作为控制台应用程序运行。但是,未在 MANIFEST.MF 中设置 MainClass 属性。这是我的插件配置:

        <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2.1</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>net.justaprogrammer.poi.cleanser.Cleanser</mainClass>
</manifest>
</archive>
</configuration>
</plugin>

但是,这不会添加到 mvn package 生成的 jar 中的 MANIFEST.MF 中。 .生成的 list 如下:
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: zippy
Build-Jdk: 1.6.0_25

我究竟做错了什么?

最佳答案

我错过了你没有在包装上生成你的程序集。您有一个 jar 项目,因此 Maven 将使用 maven-jar-plugin 构建一个 jar。你不必在你的 pom 中有任何东西来告诉它。这就是 Maven 的约定优于配置为您工作。它构建的 jar 将只包含您的项目类和资源。如果你想在那个 jar 的 list 中添加一个 Main-Class,你应该 configure the jar plugin to do so .基本上,只需移动 archive jar 插件的配置。

但是,如果您确实想要组装一个可执行的胖 jar——即一个包含所有类以及所有依赖项的类的 jar——那么您就可以在正确的位置进行设置,但是您需要使用 mvn assembly:single 实际运行程序集插件或通过 binding that goal to a lifecycle phase .需要明确的是,如果您这样做,那么您的项目将输出两个 jar:一个包含您的项目文件,另一个包含该文件以及您的项目所依赖的所有库的内容。前者是由 jar 插件构建的。后者是由程序集插件构建的。请注意,fat jar 并不常用,并且在使用它们时可能会遇到不寻常的问题,因为它们超出了普通 Java 内容的范围。

关于maven-2 - Maven 程序集插件未设置 MainClass list 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7785456/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com