我有一个类似的问题this的问题。我已经尝试了所有列出的建议,仍然不知所措。我的问题是,我试图构建一个maven项目并将其分发到其他机器,但jar文件没有使用正确的Manifest填充。每次编译和运行时,我都会得到以下错误:no main manifest attribute, in myjar.jar .是否需要编辑某种配置文件?我只是不知道发生了什么事。我也试过this fix,但没有用。
no main manifest attribute, in myjar.jar
t40tm48m1#
您可以将其添加到项目的pom文件中,在<project>标记中:
<project>
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.4</version> <configuration> <archive> <manifest> <mainClass>your.main.class</mainClass> </manifest> </archive> </configuration> </plugin> </plugins> </build>
58wvjzkj2#
另一个选择是使用maven shade plugin。不像tixon展示的maven jar plugin,maven shade plugin在生成的jar中包含依赖项。该插件的一个示例用法是:
maven shade plugin
maven jar plugin
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.0</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>your.main.Class</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin> </plugins> </build>
muk1a3rh3#
除了前两个答案(您也可以研究maven汇编插件),我建议人们在NetBeans设置中将其添加为“代码模板”。它将自动完成一旦你键入一个关键字,并击中标签。这可能是一个功能,在这篇文章的时间不可用。NetBeans Code Template Settings在链接的图片中,你可以看到当我输入shade并点击Tab时,我的模板自动完成了什么。它填充(其中 ${MC newVarName default="${exec.mainClass}"} 动态指向mainClass):
shade
<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.5.1</version> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>${MC newVarName default="${exec.mainClass}"}</mainClass> </transformer> </transformers> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> </execution> </executions> </plugin>
3条答案
按热度按时间t40tm48m1#
您可以将其添加到项目的pom文件中,在
<project>
标记中:58wvjzkj2#
另一个选择是使用
maven shade plugin
。不像tixon展示的maven jar plugin
,maven shade plugin
在生成的jar中包含依赖项。该插件的一个示例用法是:muk1a3rh3#
除了前两个答案(您也可以研究maven汇编插件),我建议人们在NetBeans设置中将其添加为“代码模板”。它将自动完成一旦你键入一个关键字,并击中标签。这可能是一个功能,在这篇文章的时间不可用。
NetBeans Code Template Settings
在链接的图片中,你可以看到当我输入
shade
并点击Tab时,我的模板自动完成了什么。它填充(其中 ${MC newVarName default="${exec.mainClass}"} 动态指向mainClass):