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

标签 java maven java-9

如果我从命令行在 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/

相关文章:

java - 具有 https 连接的 Maven WebService

java - 创建一个 ArrayList,其中包含用户定义的最小值和最大值之间的一组数字(JAVA)

java - Thawte证书查询

java - Mockito 在 Maven 中失败但在 Eclipse 中成功

java - 即使我们目前不打算迁移到 Java 8+,我们也可以升级到 Spring 5 吗?

java - 在 Java 9 的接口(interface)中使用抽象类有什么好的理由吗?

java - @PostConstruct @PreDestroy

java - 需要帮助根据用户输入列出字符的频率

java - 任何人都可以帮助解决有关日期属性的java问题吗?

java - ant fresh_install错误/构建失败4秒