2013-09-28 159 views
-1

這個問題在我確定之前已經有很多方面提出過了。我的環境Maven編譯器插件失敗?

情況:

以下送審(太大,粘貼和格式這裏):

這裏有一些我覈實了我的環境...

[[email protected] workspace]$ set | grep JAVA 
JAVA=/usr/java/jdk1.6.0_45/bin 
JAVA_HOME=/usr/java/jdk1.6.0_45 

[[email protected] workspace]$ mvn -version 
Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 05:51:28-0800) 
Maven home: /opt/apache-maven-3.0.5 
Java version: 1.6.0_45, vendor: Sun Microsystems Inc. 
Java home: /usr/java/jdk1.6.0_45/jre 
Default locale: en_US, platform encoding: UTF-8 
OS name: "linux", version: "3.11.1-200.fc19.x86_64", arch: "amd64", family: "unix" 

[[email protected] workspace]$ java -version 
java version "1.6.0_45" 
Java(TM) SE Runtime Environment (build 1.6.0_45-b06) 
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode) 

[[email protected] workspace]$ javac -version 
javac 1.6.0_45 

[[email protected] workspace]$ which java 
/usr/java/jdk1.6.0_45/bin/java 

[[email protected] workspace]$ set | grep PATH 
PATH=/usr/java/jdk1.6.0_45/bin:/opt/TEE-CLC-11.0.0:/opt/apache-maven-3.0.5/bin: /usr/java/jdk1.6.0_45/bin:/opt/apache-ant-1.9.2/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/var/lib/jenkins/.local/bin:/var/lib/jenkins/bin 
QT_PLUGIN_PATH=/usr/lib64/kde4/plugins:/usr/lib/kde4/plugins 
local cmd PATH=$PATH:/sbin; 
if [[ -z "${CDPATH:-}" || "$cur" == ?(.)?(.)/* ]]; then 
for i in ${CDPATH//:/' 
PATH=$PATH:/usr/sbin:/sbin:/usr/local/sbin type $1 &>/dev/null 
COMPREPLY=($(compgen -W "$(PATH="$PATH:/sbin" lsmod |   awk '{if (NR != 1) print $1}')" -- "$1")) 
local PATH=$PATH:/sbin; 
local PATH="$PATH:/sbin:/usr/sbin"; 
COMPREPLY+=($(compgen -W   "$(PATH="$PATH:/sbin" lspci -n | awk '{print $3}')" -- "$cur")) 
local PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin; 
COMPREPLY+=($(compgen -W   "$(PATH="$PATH:/sbin" lsusb | awk '{print $6}')" -- "$cur")) 

[[email protected] workspace]$ uname -r 
3.11.1-200.fc19.x86_64 

[[email protected] workspace]$ 

UPDATE 我想我的問題可能是關於Maven的編譯器插件,但我不能排除環境配置。如你所見,maven-compiler-plugin失敗。

爲什麼Maven的說,它希望使用JRE而不是JDK?確實安裝了JDK!

這裏的一些mvn -X輸出...

[DEBUG] Configuring mojo org.apache.maven.plugins:maven-compiler-plugin:3.1:compile from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-compiler-plugin:3.1, parent: $ 
[DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-compiler-plugin:3.1:compile' with basic configurator --> 
[DEBUG] (f) basedir = /var/lib/jenkins/jobs/ETSE(3.0.x)-JavaProjects/workspace/common 
[DEBUG] (f) buildDirectory = /var/lib/jenkins/jobs/ETSE(3.0.x)-JavaProjects/workspace/common/target 
[DEBUG] (f) classpathElements = [/var/lib/jenkins/jobs/ETSE(3.0.x)-JavaProjects/workspace/common/target/classes, /var/lib/jenkins/.m2/repository/com/etp/commons/commons-log-persi$ 
[DEBUG] (f) compileSourceRoots = [/var/lib/jenkins/jobs/ETSE(3.0.x)-JavaProjects/workspace/common/src/main/java] 
[DEBUG] (f) compilerArgument = -Xlint:all 
[DEBUG] (f) compilerId = javac 
[DEBUG] (f) compilerVersion = 1.6 
[DEBUG] (f) debug = true 
[DEBUG] (f) encoding = UTF-8 
[DEBUG] (f) failOnError = true 
[DEBUG] (f) forceJavacCompilerUse = false 
[DEBUG] (f) fork = true 
[DEBUG] (f) generatedSourcesDirectory = /var/lib/jenkins/jobs/ETSE(3.0.x)-JavaProjects/workspace/common/target/generated-sources/annotations 
[DEBUG] (f) maxmem = 512m 
[DEBUG] (f) meminitial = 128m 
[DEBUG] (f) mojoExecution = org.apache.maven.plugins:maven-compiler-plugin:3.1:compile {execution: default-compile} 
[DEBUG] (f) optimize = false 
[DEBUG] (f) outputDirectory = /var/lib/jenkins/jobs/ETSE(3.0.x)-JavaProjects/workspace/common/target/classes 
[DEBUG] (f) projectArtifact = com.etse:etse-common:jar:3.0.3-SNAPSHOT 
[DEBUG] (f) showDeprecation = true 
[DEBUG] (f) showWarnings = true 
[DEBUG] (f) skipMultiThreadWarning = false 
[DEBUG] (f) source = 1.6 
[DEBUG] (f) staleMillis = 0 
[DEBUG] (f) target = 1.6 
[DEBUG] (f) useIncrementalCompilation = true 
[DEBUG] (f) verbose = true 
[DEBUG] (f) mavenSession = [email protected] 
[DEBUG] (f) session = [email protected] 
[DEBUG] -- end configuration -- 
[DEBUG] Using compiler 'javac'. 
[DEBUG] Source directories: [/var/lib/jenkins/jobs/ETSE(3.0.x)-JavaProjects/workspace/common/src/main/java] 
+1

發佈你的'pom.xml'和'mvn -X'的實際輸出。 – chrylis

+0

我的'pom.xml'非常龐大。你在尋找maven-compiler-plugin的輸出是什麼? –

+0

我的maven爲我做了同樣的事情。 JDK使用JRE來運行。 JDK是JRE以及一個編譯器和工具。 –

回答

0

這篇文章證明了我爲特定環境和多模塊Maven構建所需修復的線索。

我降級maven-compiler-plugin3.1的版本2.3.2和我的生成繼續進行,沒有出現故障。

不知道根本原因究竟是什麼(猜測是編譯器警告可能被視爲錯誤)。 mvn -e對我來說不是很有幫助,也不是mvn -X。只有經過多次Google搜索嘗試,我才找到上述帖子。

1

,它使用的是你告訴它使用Java安裝從mvn --version輸出判斷;即您在/usr/java/jdk1.6.0_45中安裝的那個。

爲什麼Maven說要使用JRE而不是JDK?

這並不是說。它只是告訴你它已經設置了它的JAVA_HOME變量,並且該設置對於JDK安裝來說看起來是正確的。

我期待你的Maven的編譯器插件失敗的原因是別的東西。但是你沒有包括解決這個問題所需的信息。應該有一些較早的輸出(列出編譯錯誤!)。如果沒有幫助,重新運行與-e選項mvn命令(通過插件故障信息提示!!),並告訴我們它說什麼。


在一般情況下,如果它是一個壞主意,爲什麼你的編譯失敗的一個特定理論太早關注和糟糕想法,只顯示你想幫助你的證據,人們涉及您的理論。

+0

這是一個很長的一週排除故障並修復與將Windows/TFS/Jenkins/Maven構建轉換爲Fedora/TEE-CLC/Jenkins/Maven構建有關的所有問題的結尾。以前在Windows上完美工作的原因是Linux上配置的痛苦。這個項目的Pom.xml可以很好地處理前者,但不能處理後者。沒有編譯問題w/source。所以'-e'或'-X'什麼都不會顯示。 –

+1

我得到了-1的原始標題,並沒有提供更多的信息來幫助你...所以這是我的第二次嘗試。道歉,但這是一條漫長的道路。很多學習和挫折。 –

+0

我沒有什麼可以添加到我已經提出的建議。 –