如果我从命令行在 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-plugin
的 compilerArgs
)吗?
最佳答案
临时解决方法是在 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/