2014-03-06 174 views
1

我的Maven構建在Windows機器上很好,但是在Ubuntu上編譯錯誤失敗。Maven構建在Ubuntu 12.04上失敗,JDK1.7

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project [XXX]: Compilation failure: Compilation failure: 
[ERROR] /usr/share/tomcat7/[XXX]:[24,23] error: no suitable constructor found for XXX 
[ERROR] 
[ERROR] constructor XXX is not applicable 
[ERROR] (actual argument Class<XXX> cannot be converted to Class<? extends XXX> by method invocation conversion) 
[ERROR] constructor XXX is not applicable 
[ERROR] (actual and formal argument lists differ in length) 
[ERROR] /usr/share/tomcat7/[XXX]:[36,24] error: no suitable constructor found for XXX) 
[ERROR] -> [Help 1] 

貓的/ etc/LSB釋放

DISTRIB_ID=Ubuntu 
DISTRIB_RELEASE=12.04 
DISTRIB_CODENAME=precise 
DISTRIB_DESCRIPTION="Ubuntu 12.04.4 LTS" 

Java的版本

java version "1.7.0_51" 
OpenJDK Runtime Environment (IcedTea 2.4.4) (7u51-2.4.4-0ubuntu0.12.04.2) 
OpenJDK Client VM (build 24.45-b08, mixed mode, sharing) 

MVN -version

Apache Maven 3.0.4 
Maven home: /usr/share/maven 
Java version: 1.7.0_51, vendor: Oracle Corporation 
Java home: /usr/lib/jvm/java-7-openjdk-i386/jre 
Default locale: en_US, platform encoding: UTF-8 
OS name: "linux", version: "3.5.0-46-generic", arch: "i386", family: "unix" 

我已經嘗試過建立它的Java 1.6和將java更改爲oracle-7-JDK ...

錯誤保持不變。

你能幫我嗎?

編輯

我照着provided instructions

現在它看起來像這樣安裝了Oracle JDK:

Java的版本

java version "1.7.0_51" 
Java(TM) SE Runtime Environment (build 1.7.0_51-b13) 
Java HotSpot(TM) Client VM (build 24.51-b03, mixed mode) 

MVN -version

Apache Maven 3.0.4 
Maven home: /usr/share/maven 
Java version: 1.7.0_51, vendor: Oracle Corporation 
Java home: /usr/lib/jvm/java-7-oracle/jre 
Default locale: en_US, platform encoding: UTF-8 
OS name: "linux", version: "3.5.0-46-generic", arch: "i386", family: "unix" 

構建仍然失敗,相同的錯誤消息

+1

想到的第一件事就是Java版本。我不太確定你是否擁有完全成熟的Java JDK。您可以請安裝Java JDK [說明](http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html)並查看錯誤是否持續? – npinti

+0

感謝您的指示。 – JBR

+0

檢查消息'/ usr/share/tomcat7/[XXX]:[24,23]錯誤:找不到合適的構造函數用於XXX [錯誤] [錯誤]構造函數XXX不適用「,這是你的問題。 – khmarbaise

回答

0

更新您的POM文件來使用了最新的Maven編譯器插件版本(你正在使用2.0.2的極端舊)。

<project> 
    ... 
    <build> 
    <pluginManagement> 
     <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.1</version> 
      <configuration> 
      <!-- put your configurations here --> 
      </configuration> 
     </plugin> 
     </plugins> 
    </pluginManagement> 
    </build> 
    ... 
</project> 
+0

我用3.1試過。同樣的錯誤... – JBR

+0

這只是一個更新你的編譯器插件版本的提示,它會清除你的代碼中的錯誤。 – khmarbaise