NotDirectoryException при maven-компиляции примера ActiveMQ Artemis
Во-первых, я исследовал эту проблему, но не нашел ничего, что могло бы ее решить, поэтому я здесь:
Я пытаюсь запустить пример, предоставленный с последней версией Apache ActiveMQ Artemis (2.5.0), которая является протоколами /mqtt/publish-subscribe. Как говорит Apache, я пытался запустить mvn verify
в каталоге. Проблема в том, что это не работает. Я поместил вывод здесь, я все равно попробовал -e и -X, так что не стесняйтесь спрашивать меня о записи этой трассировки стека.
(Конечно, /Library/[....]/lib/modules - это не каталог, а файл. На самом деле я не знаю, что он делает, но я попытался переименовать его и создать папку с именем ' модулей, и он просто создавал ошибки, когда я пытался запустить что-то еще.)
[INFO] Scanning for projects...
[INFO]
[INFO] --------< org.apache.activemq.examples.mqtt:publish-subscribe >---------
[INFO] Building ActiveMQ Artemis MQTT Publish/Subscribe Example 2.5.0
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M1:enforce (enforce-maven) @ publish-subscribe ---
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M1:enforce (enforce-java) @ publish-subscribe ---
[INFO]
[INFO] --- maven-remote-resources-plugin:1.5:process (process-resource-bundles) @ publish-subscribe ---
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ publish-subscribe ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /Users/bouvet/ARTEMIS/apache-artemis-2.5.0/examples/protocols/mqtt/publish-subscribe/src/main/resources
[INFO] Copying 3 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ publish-subscribe ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /Users/bouvet/ARTEMIS/apache-artemis-2.5.0/examples/protocols/mqtt/publish-subscribe/target/classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.024 s
[INFO] Finished at: 2018-04-23T16:17:15+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project publish-subscribe: Fatal error compiling: CompilerException: InvocationTargetException: java.nio.file.NotDirectoryException: /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home/lib/modules -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
РЕДАКТИРОВАТЬ: Я пытался включить это в мой pom.xml:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
Или это:
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
Но это ничего не изменило:(
РЕДАКТИРОВАТЬ II: Как было предложено Джастином Бертрамом и с некоторыми исследованиями, я решил изменить JDK по умолчанию, по крайней мере для этого проекта, используя
export JAVA_HOME=`/usr/libexec/java_home -v 1.8.0_162`
Возможно, это не самый лучший метод, поскольку мне, возможно, придется изменить его снова для работы с Java 9, но по крайней мере он работает для этого. У меня сейчас есть проблемы с зависимостями, но я думаю, что это не то место, чтобы говорить об этом, я буду считать эту проблему решенной.
1 ответ
Похоже, вы используете Java 9, который еще не поддерживается Apache ActiveMQ Artemis. Попробуйте использовать Java 8, и я думаю, вы увидите, что пример работает так, как ожидалось. У меня работает при использовании:
$ java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)