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