Есть ли способ использовать jlink в IntelliJ IDEA для создания пользовательского модульного образа времени выполнения?

Я следую Project Jigsaw: краткое руководство по модульной системе в IntelliJ IDEA. 2018.2.5. Я сделал все правильно в IDE до раздела Компоновщик. Есть ли способ использовать jlink в IntelliJ IDEA?

jlink (см. JEP 282) — это инструмент компоновщика, который можно использовать для связывания набора модулей вместе с их транзитивными зависимостями для создания пользовательского модульного образа времени выполнения (см. JEP 220).
- Project Jigsaw: Краткое руководство по модульной системе

Я обнаружил эту проблему Возможность создания артефактов JLink в JetBrains Bug & Issue Tracker< /em>, но он открыт уже более 2 лет и у него нет даже описания.


В качестве обходного пути я видел этот Есть ли плагин maven jigsaw jlink? интересный вопрос, и наиболее многообещающей альтернативой кажется подключаемый модуль Apache Maven JLink, но он также существует уже более 2 лет и до сих пор не выпущен.


person lcnicolau    schedule 09.11.2018    source источник
comment
Поскольку вы связались с одним из вопросов, на которые я ответил (также обновлен). Вы предоставили maven-jlink-plugin:3.0.0-alpha-1 попробовать? Я считаю, что обратная связь является важным аспектом, прежде чем переходить к релизам. Блог, на который есть ссылка в ответе, должен помочь вам в этом процессе.   -  person Naman    schedule 10.11.2018
comment
Спасибо @nullpointer. Я еще не пробовал плагин (пока), я только начинаю пробовать новые функции Java с версии 9. Вопрос в том, как использовать jlink в IntelliJ IDEA, я просто подумал о Maven в качестве альтернативы в среде IDE, и я был разочарован тем, что не нашел стабильного решения. Даже согласно документации текущая версия этого плагина требует JDK 9, тогда как последняя версия — 11.   -  person lcnicolau    schedule 10.11.2018
comment
На точный вопрос об использовании jlink через IntelliJ, похоже, ответили ссылки, которыми вы поделились со мной в вопросе (мы можем подождать, пока участник IntelliJ действительно подтвердит). Что касается плагина, вы может отслеживать обновления в фактическом исходном репозитории и внести дальнейший вклад.   -  person Naman    schedule 10.11.2018


Ответы (1)


Вы можете использовать Ant в качестве инструмента сборки и указать свою собственную цель jlink, например:

<target name="link">
    <echo message="Creating jlink image in directory = dist\bin\java" />
    <exec executable="jlink">
        <arg line='--module-path bin;"C:\Program Files\Java\jdk-11.0.1-Linux\jmods";"C:\Users\VTorroni\_libs\hsqldb-2.4.1\modules";"C:\Users\VTorroni\_libs\tinylog-1.3.5\module";"C:\Users\VTorroni\_libs\javax.servlet-api-4.0.1\module\javax.servlet.api-4.0.1.jar" --add-modules pnode --output dist\bin\java --strip-debug --no-header-files --no-man-pages --compress=2' />
    </exec>
</target>
person Vittorio Torroni    schedule 21.01.2020