Невозможно скомпилировать модуль Java 9 с модулем-патча в Intellij Idea 2017.2.1JAVA

Программисты JAVA общаются здесь
Anonymous
Невозможно скомпилировать модуль Java 9 с модулем-патча в Intellij Idea 2017.2.1

Сообщение Anonymous »

Я пытаюсь познакомиться с модулями Java 9 и как определить их в Intellij. Среди прочего, я хочу решить проблему с разделенным пакетом, используя флаг-компилятор/JVM, и я не знаю, как заставить его работать в Intellij. /> Это мой исходный файл myimtablelist.java < /code>: < /p>

Код: Выделить всё

package com.google.common.collect;

public class MyImmutableList extends RegularImmutableList {
public MyImmutableList(Object[] array) {
super(array);
}
}
он принадлежит модулю модуля com.effjava.collect с модулем info.java :

Код: Выделить всё

module com.effjava.collect {
// do not require module guava; instead patch this module with guava.19-0.jar via:
// javac --patch-module com.effjava.collect=guava-19.0.jar module-info.java com/google/common/collect/MyImmutableList.java
//    requires guava;
exports com.google.common.collect;
}
Для компиляции моих модулей я указал флаг-patch-module в Intellij, используя настройки → сборка, выполнение, Deplyoment → компилятор → Comply Process Process Proces Regularimutablelist из библиотеки Guava.
Совет, предоставленный IntelliJ, состоит в том, чтобы добавить Tress A Директива для библиотеки гуавы к дескриптору модуля, который, конечно, не работает, потому что компилятор, затем ошибочно жалуется на пакет:
com.google.common.collect как из com.effjava.collect, так и Guava < /p>
< /blockquote>
При дальнейшем исследовании я заметил, что процесс сборки выпускает предупреждение, связанное с модулем-ошибки-abnorm abnorm: < /p>

< /cdorm /> "C: \ Program Files \ Java \ jdk -9 \ bin \ java" -xmx700m -djava.awt.headless = true < /p>
< /blockquote>

... Модуль: com.effjava.collect, указанный в-patch-module < /p>
< /blockquote>

... больше вещей ... < /p>
< /blockquote>
, кстати, я не знал, как удержать предупреждения коммитатора. Я не скрываю их в окне сообщений IntelliJ, и все же я не вижу их. В качестве обходного пути я просто определил флажки поддельных компиляторов и позволил сбою процесса сборки так, чтобы он испускал предупреждение в своем отчете о сбое. Эта жалоба не имеет смысла, так как я успешно скомпилировался и создал свой модуль, вводя в команды Javac и jar вручную на уровне командной строки:

Код: Выделить всё

cd %PROJECTDIR%\com.effjava.collect\src
javac --patch-module com.effjava.collect=../../guava/guava-19.0.jar -d ../../out/production/com.effjava.collect module-info.java com/google/common/collect/MyImmutableList.java
jar --create --file=../../out/artifacts/com_effjava_collect_jar/com.effjava.collect.jar -C ../../out/production/com.effjava.collect .
Как я могу сказать процесс сборки Intellij, что я хочу исправить свой модуль?

Подробнее здесь: https://stackoverflow.com/questions/455 ... a-2017-2-1

Вернуться в «JAVA»