![](/img/trans.png)
[英]Why docker-maven-plugin fails to pick up correct jar file to include in docker image?
[英]Why doesn't closure-maven-plugin pick up the correct Java version?
我正在嘗試使用JDK 7編譯Storm Starter 。
$ echo $JAVA_HOME [master]
/opt/jdk1.7.0_80
$ mvn -version
Apache Maven 3.0.5
Maven home: /usr/share/maven
Java version: 1.7.0_80, vendor: Oracle Corporation
Java home: /opt/jdk1.7.0_80/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.13.0-65-generic", arch: "amd64", family: "unix"
$ mvn clean install -DskipTests=true
...
[INFO] --- clojure-maven-plugin:1.7.1:compile (compile-clojure) @ storm-core ---
Compiling backtype.storm.LocalDRPC to /home/incubator-storm/storm-core/target/classes
Exception in thread "main" java.lang.UnsupportedClassVersionError: backtype/storm/ILocalDRPC : Unsupported major.minor version 51.0, compiling:(backtype/storm/LocalDRPC.clj:17:1)
Caused by: java.lang.UnsupportedClassVersionError: backtype/storm/ILocalDRPC : Unsupported major.minor version 51.0
根據該線程,我使用了錯誤的Java版本,應該使用Java7。但是我的Java版本是 7。所以我的直覺是,closure-maven-plugin在編譯時未選擇正確的Java版本。 。 如何使該項目編譯?
您需要確保$JAVA_HOME/bin
(或至少1.7 java
可執行文件)首先在您的PATH
因為這是插件使用的方式。
使用JAVA_HOME指向JDK 1.7時,我可以通過在PATH
首先將路徑設置為java
(JDK 1.6目錄)來復制此問題。 clojure-maven-plugin
代碼嘗試確定此路徑,並退回到在當前環境/ PATH
僅使用java
:
private String getJavaExecutable() throws MojoExecutionException {
Toolchain tc = toolchainManager.getToolchainFromBuildContext("jdk", //NOI18N
session);
if (tc != null) {
getLog().info("Toolchain in clojure-maven-plugin: " + tc);
String foundExecutable = tc.findTool("java");
if (foundExecutable != null) {
return foundExecutable;
} else {
throw new MojoExecutionException("Unable to find 'java' executable for toolchain: " + tc);
}
}
return "java";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.