maven幾種常見錯誤的解決方法

1、must override a superclass method 錯誤java

首先咱們得知道:web

@override註釋在jdk1.5環境下只能用於對繼承的類的方法的重寫,而不能用於對實現的接口中的方法的實現,在jdk1.6環境下對於繼承和實現都適用。apache

其次咱們得知道:windows

maven的核心插件maven-compiler-plugin 默認指定了JDK版本和編碼,maven 2默認用jdk 1.3來編譯,maven 3默認用jdk 1.5,windows默認使用GBK編碼,java項目常常編碼爲utf8,也須要在compiler插件中指出,不然中文亂碼可能會出現編譯錯誤。eclipse

若是出現must override a superclass method錯誤,就須要用1.6來編譯了(1.6才支持對接口的註解)maven

因此須要指定maven-compiler-plugin插件的JDK版本,指定後ide

<build>
   <plugins> 
         <plugin> 
            <groupId>org.apache.maven.plugins</groupId> 
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version> 
            <configuration> 
                <source>1.7</source> 
                <target>1.7</target> 
            </configuration> 
         </plugin> 
    </plugins>
  </build>

同時爲了穩定起見修改eclipse配置window->preferences->Java->Compiler中的Compiler compliance level修改成1.7或以上。eclipse中使用maven的人都裝了m2eclipse插件,在項目上右擊選擇maven-> Update Project Configuration,若是沒有找到Update Project Configuration,直接項目右鍵Run as,用maven編譯一下,也能夠。ui

  must override a superclass method的錯誤就能夠獲得解決。this

若是仍是不行,那將你的eclipse的compile改爲1.6或者1.7試試(先1.6,再1.7)編碼

2、No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? 錯誤

mave項目的jre老是指向jre1.5,即便改了以後,update項目後也會指向1.5。加上下面的plugin就能夠了

<plugin>  
	<groupId>org.apache.maven.plugins</groupId>  
	<artifactId>maven-compiler-plugin</artifactId>  
	<version>3.1</version>  
	<configuration>  
		<source>1.7</source>  
		<target>1.7</target>  
	</configuration>  
</plugin>

可是加上以後,只是把默認的jdk改爲了1.7,若是還出現這個錯誤,就須要看eclipse的jre是否是選擇的jdk中的jre(不能選擇單獨安裝的jre)

在Eclipse中建立maven項目出現的環境警告 j2se-1.5

3、Could not transfer artifact org.apache.maven.plugins:maven-surefire-plugin:pom:2.7.1 from/to central (http://repo1.maven.org/maven2)

這個錯誤有多是你的遠程倉庫的地址訪問不了,這時就須要更改你的遠程的倉庫地址了,在setting.xml中的mirrors裏面配置,有一次出現這個問題,我把地址改爲<url>http://repo1.maven.org/maven2/</url>就能夠了,讓我疑問的是,maven默認就是這個遠程倉庫的地址(默認的https://repo.maven.apache.org/maven2會自動跳轉到http://repo1.maven.org/maven2/),我只是在mirrors加上mirror,就能夠了。不知道爲何?默認的遠程倉庫地址在lib/maven-model-builder-3.3.3.jar的pom-4.0.0.xml中查看。

參考:Maven:mirror和repository 區別

相關文章
相關標籤/搜索