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中查看。