我正在开发一个简单的Spring控制台应用程序(它是一个具有经典main()方法()的类的批处理,我对 pom.xml Maven文件有以下疑问。此文件仅包含工作所需的Spring依赖项。当我运行 Maven安装声明时,它会将相关的 .jar 编译的应用程序生成到我项目的目标目录中。
我正在寻找我过去工作的另一个类似的旧项目,并进入 pom.xml 我可以找到这个 maven-jar-plugin 插件:< / p>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.myCompany.main.MainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
那么 maven-jar-plugin 究竟做了什么(也没有使用 maven install 语句生成一个已编译的 .jar 文件) 。使用或不使用此插件有什么区别?
答案 0 :(得分:0)
jar插件允许我们定义默认的清单文件。使用该选项,位于$ {project.build.outputDirectory} /META-INF/MANIFEST.MF的文件将成为jar中的清单文件 maven jar插件提供了构建jar文件的功能,如果你定义你的项目打包为jar文件,maven会隐式调用这个插件。我们不需要在pom.xml中定义它,它将被下载并在maven需要时执行。无论你是否在你的pom中使用它都无关紧要,如果需要它将由maven自动加载。
请参阅此链接以获得更好的承诺 https://examples.javacodegeeks.com/enterprise-java/maven/maven-jar-plugin-example/
答案 1 :(得分:0)
Maven Jar插件负责配置项目主类的位置,以便将其添加到Jar的清单文件中。如果在尝试运行jar文件时未包含此插件,则会出现此错误:
Exception in thread "main" java.lang.NoClassDefFoundError
无论你是否在其他地方添加了这一行:
<mainClass>yourapp.Mainclass</mainClass>
正确的方法是在maven-jar-plugin中添加上面的行。