有maven jigsaw jlink插件吗?

时间:2017-06-05 01:35:46

标签: java maven java-9 jigsaw jlink

maven是否有新Java 9的插件jlink我在网上搜索但未能找到maven团队的任何官方消息。

3 个答案:

答案 0 :(得分:6)

即可。在Github/maven-plugins创建一个相同的内容已经取得了一些进展。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jlink-plugin</artifactId>
    <version>3.0.0-SNAPSHOT</version>
</plugin>

其代码中的插件会从提案中自适应JEP-282JEP-220

虽然这可能看起来像链接太多答案。来自Github的@khmarbaise也有一个工作示例,这需要一个工具链 -

<configuration>
  <jdkHome>/Library/Java/JavaVirtualMachines/jdk1.9.0_ea+170.jdk/Contents/Home</jdkHome>
</configuration>

加上side note from the author引语 -

  

目前只不过是一个概念证明。这里的一切都是推测性的!

Edit1 : - 在评论中分享,可以在How to create a Java runtime with Maven找到其他详细信息。

Edit2 : - 日期为2018年11月10日,可以升级到使用maven-jlink-plugin:3.0.0-alpha-1且仍然provide some valuable feedback

答案 1 :(得分:4)

我正在研究ModiTect,这是围绕Java 9模块的通用工具。 ModiTect Maven插件的One of the goals允许您通过jlink创建模块运行时映像:

<plugin>
    <groupId>org.moditect</groupId>
    <artifactId>moditect-maven-plugin</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <executions>
        <execution>
            <id>create-runtime-image</id>
            <phase>package</phase>
            <goals>
                <goal>create-runtime-image</goal>
            </goals>
            <configuration>
                <modulePath>
                    <path>${project.build.directory}/modules</path>
                </modulePath>
                <modules>
                    <module>com.example.module1</module>
                    <module>com.example.module2</module>
                </modules>
                <launcher>
                    <name>helloWorld</name>
                    <module>com.example.module1</module>
                </launcher>
                <outputDirectory>
                    ${project.build.directory}/jlink-image
                </outputDirectory>
            </configuration>
        </execution>
    </executions>
</plugin>

该插件目前正在积极开发中,必须暂时从源代码构建(很快将第一个版本部署到Maven Central)。

答案 2 :(得分:0)

mvn-jlink plugin,它可以调用jdeps和jlink(以及jdk提供的任何工具),还可以从ADOPT和LIBERICA下载并解压缩所需的openjdk版本,这样就可以构建跨平台的图像

<plugin>
    <groupId>com.igormaznitsa</groupId>
    <artifactId>mvn-jlink-wrapper</artifactId>
    <version>1.0.0</version>
    <executions>
        <execution>
            <id>call-jlink</id>
            <goals>
                <goal>jlink</goal>
            </goals>
            <configuration>
                <jdepsReportPath>${project.build.directory}${file.separator}jdeps.out</jdepsReportPath>
                <output>${project.build.directory}${file.separator}preparedJDK</output>
                <addModules>
                    <module>java.compiler</module>
                </addModules>
                <options>
                    <option>--compress=2</option>
                    <option>--no-header-files</option>
                    <option>--no-man-pages</option>
                </options>
            </configuration>
        </execution>
    </executions>
</plugin>