#eclipse #maven
#eclipse #maven
Вопрос:
Как Eclipse распространяет Java 11 «Expose Package …» на цель Maven?
Я предоставляю модуль Java 11 для ВСЕХ НЕНАЗВАННЫХ, используя Eclipse: Свойства -> Путь сборки Java -> Зависимости модуля -> Пакет Expose…
Ничего не добавляется к pom.xml с этой конфигурацией проект все же успешно создается.
Используя Eclipse 2020-06, maven 3.6.3 от m2e, maven-compiler-plugin 3.8.1 (это единственное явное переопределение в pom.xml ). Остальное — это «ВСТРОЕННЫЙ» maven.
Когда я смотрю на консоль Maven и эффективный pom, я не вижу никаких добавленных compilerArgs (—add-exports …). Когда я запускаю mvn из командной строки, я получаю сбой компилятора, как и ожидалось.
Как m2e распространяет —add-exports на javac, не отображая его в help:effective-pom target или Maven console?
В Eclipse, когда я нажимаю «Показать параметры JPMS …», отображается «—add-exports …», но нигде в выводе отладки m2e это не отображается.
Ответ №1:
Допустим, я хочу использовать внутренний API jdk.javadoc / jdk.javadoc.internal.tool, add compilerArgs должен работать:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<source>17</source>
<target>17</target>
<compilerArgs>
<fork>true</fork>
<arg>--add-exports</arg>
<arg>jdk.javadoc/jdk.javadoc.internal.tool=ALL-UNNAMED</arg>
</compilerArgs>
</configuration>
</plugin>
‘fork’ должно быть true.