如果执行compile命令:
控制台没有任何输出信息,可以在编辑JRE时,在Default VM arguments 输入:
-Dmaven.multiModuleProjectDirectory=$MAVEN_HOME
执行mvn install 时, 如果报错:[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
需要先执行 maven - update project ,在执行命令mvn install。
maven常用命令:
1、mvn compile 编译,将Java 源程序编译成 class 字节码文件。
2、mvn test 测试,并生成测试报告
3、mvn clean 将以前编译得到的旧的 class 字节码文件删除
4、mvn pakage 打包,动态 web工程打 war包,Java工程打 jar 包。
5、mvn install 将项目生成 jar 包放在仓库中,以便别的模块调用
如遇到上述问题:java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()Ljava/lang/Integer;就有可能是mybatis-spring (mybatis适配器)版本太低导致的,这时要试着调高版本,一般调到1.3.0以上即可。
如果遇到:“Dynamic Web Module 3.0 requires Java 1.6 or newer.” 而不影响tomcat
(博主的环境是jdk1.8 maven 3.5.0 tomcat 8.0 ecplise 4.4.1)
当你用maven创建项目时,默认的jdk版本是1.5,这个你可以在eclipse 的Navigator视图里,找到当前项目的.classpath里查看
这个视图如果你的eclipse没有的话, 你可以自己搞出来(Windows-- Show View -- Others)
然后,我们可以看到.classpath 的maven 默认jdk版本
我这里显示的jdk1.8是我自己改过的,你们的应该是默认的jdk1.5
所以当你引入jdk 1.5以上的依赖包时,就会显示这个错误
首先提供网络资料上大部分都会说的解决方案
在报这个错的那个maven项目的pom.xml 里加上下面的依赖
<build>
<plugins>
<!-- 引入这个包解决Dynamic Web Module 3.0 requires Java 1.6 or newer -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
然后,你还得右键项目Maven--Update Project... 然后你这会看到叉叉消失了。
但是加入了这个依赖,你就不能在eclipse里 run as xxx.jsp 页面了,再也不能快速编译看到预期结果了
因为当你按之前操作那样run as xxx.jsp时,你的tomcat8.0 会报错(如果是tomcat7.0虽然会打印错误日志,但是还是能编译的),从而无法编译
至于为什么加上上面说的依赖包,tomcat 8.0 会报错,暂时也不知道,
但是有没有其他办法能做到修改maven的默认jdk版本呢?不用上面的方法,答案是有的
这就是我们直接去修改maven 的conf -- settings.xml
我们去添加以下的配置(在<profiles></profiles>标签里)
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
这样后(默认你的eclipse是引用这份settings.xml设置的),我们就能发现eclipse里的全部maven项目里的jdk版本都变成1.8了,
那个错误也消失了,也不会触发tomcat8.0 罢工的问题。