gpt4 book ai didi

java - 如何在 maven-jar-plugin 中指定 --main-class 和 --module-version?

转载 作者:搜寻专家 更新时间:2023-10-30 21:32:38 28 4
gpt4 key购买 nike

如果我从命令行在 Java 9 上构建 JAR,我会传递一个参数 --main-class 以将 MainClass 属性包含到 module-info.class 中:

jar --create --file <filename> --main-class=<mainclass> --module-version 0.1 -C classes .

但是如果我从 maven 构建一个 JAR 呢?这是我的 maven-jar-plugin 配置:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
</plugin>

我可以将自定义参数传递给 maven-jar-plugin(比如 maven-compiler-plugincompilerArgs)吗?

最佳答案

临时解决方法是在 package 阶段调用 jar --update:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
...
</configuration>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>package</phase>
<configuration>
<target>
<exec executable="${java.home}/bin/jar" failonerror="true">
<arg value="--main-class"/>
<arg value="[main class here]"/>
<arg value="--module-version"/>
<arg value="0.1"/>
<arg value="--update"/>
<arg value="--file"/>
<arg value="${project.build.directory}/${project.artifactId}-${project.version}.jar"/>
</exec>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>

我乐于接受更好的想法。

关于java - 如何在 maven-jar-plugin 中指定 --main-class 和 --module-version?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43671410/

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