Есть ли плагин Maven Jigsaw Jlink?

Есть ли у maven плагин для новой Java 9? jlink Я искал в Интернете, но не смог найти ничего официального от команды Maven.

4 ответа

Да Был достигнут некоторый прогресс в создании одного на Github/maven-plugins для того же самого.

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

Плагин в своем коде читает как адаптивный к JEP-282 и JEP-220 из предложений.

И хотя это может выглядеть как ссылка слишком много ответов. Для этого есть рабочий пример из @khmarbaise на Github, для которого требуется набор инструментов с -

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

Плюс дополнительная заметка автора цитаты -

В настоящее время не более чем подтверждение концепции. Здесь все умозрительно!

Edit1: - Как указано в комментариях, можно найти дополнительную информацию @ Как создать среду выполнения Java с Maven.

Edit2: - от 10 ноября 2018 года можно перейти на использование maven-jlink-plugin:3.0.0-alpha-1 и по-прежнему предоставлять некоторые ценные отзывы.

Я работаю над ModiTect, общим инструментарием вокруг модулей Java 9. Одна из целей подключаемого модуля ModiTect Maven позволяет создавать образы времени выполнения модуля через 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).

Есть плагин mvn-jlink, который позволяет вызывать jdeps и jlink (и любой инструмент, предоставляемый jdk), также он может загружать и распаковывать необходимую версию openjdk из ADOPT и LIBERICA, такой способ позволяет создавать кроссплатформенные образы

<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>

Возможно, проверьте . Плагин также поддерживает

  • jdeps --generate-module-info+ javac+ jarдля исправления безымянных модулей,
  • jlinkдля создания образов среды выполнения и
  • jpackageдля создания установщиков приложений (доступно только с JDK 14) .

Документацию по плагину вы найдете на https://github.com/ghackenberg/jigsaw-maven-pluginстранице Github README .

      <plugin>
   <groupId>io.github.ghackenberg</groupId>
   <artifactId>jigsaw-maven-plugin</artifactId>
   <version>1.1.2</version>
</plugin>
Другие вопросы по тегам