Есть ли плагин 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>