Код: Выделить всё
package com.google.common.collect;
public class MyImmutableList extends RegularImmutableList {
public MyImmutableList(Object[] array) {
super(array);
}
}
Код: Выделить всё
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;
}
Совет, предоставленный 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 .
Подробнее здесь: https://stackoverflow.com/questions/455 ... a-2017-2-1