【发布时间】:2020-12-22 20:19:35
【问题描述】:
要为 jar 和程序集插件配置清单文件中声明的主类,我必须在插件声明中打开配置标签,如下例所示:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<archive>
<manifest>
<mainClass>com.example.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
我必须做一些类似的事情来配置构建插件使用的 java 版本:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
但是,通常情况下,为了避免插件部分中的这些配置标记以使 pom.xml 更容易阅读,我在属性部分配置了 java 编译器插件中使用的 java 版本,并具有以下属性:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
jar和程序集插件生成的manifest文件中声明的主类可以用同样的方式配置吗?
查看有关 jar 插件的旧 maven 文档: https://maven.apache.org/archives/maven-1.x/plugins/jar/properties.html
提到了属性“maven.jar.mainclass”,我相信在某些时候可以通过项目属性部分定义清单文件的主类,如下所示:
<properties>
<maven.jar.mainclass>com.example.Main</maven.jar.mainclass>
</properties>
但是当我尝试运行以这种方式生成的 jar 时,我收到错误消息“在 example.jar 中没有主清单属性”。 那么有没有什么方法可以配置主类而不用直接在plugins部分打开那些配置标签呢?
【问题讨论】:
标签: java maven pom.xml maven-plugin maven-jar-plugin