1.编译错误
qcadoo-maven-plugin>mvn clean install
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
原因:JAVA_HOME配置错了,错配成了jre主目录,而应该配置成jdk主目录
解决:我的电脑--属性--高级系统设置--环境变量--系统变量—JAVA_HOME 的值填写 “jdk主目录”
2.缺少jar包
问题定位的方法: ERROR的第一行或者第二行
[ERROR] can't determine annotations of missing type javax.persistence.Entity
无法确定丢失的注解类型 javax.persistence.Entity 搜 javax.persistence
ERROR] The type javax.transaction.TransactionManager cannot be resolved. It is indirectly referenced from required .class files UnscaledValueValidator.java (no source information available)
javax.transaction.TransactionManager 无法被处理。 它间接的被 UnscaledValueValidator.java的class文件引用(无法获得源信息)
The type org.codehaus.jackson.JsonParser cannot be resolved. It is indirectly referenced from required .class files ..../JsonMapperHttpMessageConverter.java:67
org.codehaus.jackson.JsonParser 无法被处理。它间接的被引用自必须的.class文件 ..../JsonMapperHttpMessageConverter.java的第67行
方法:在 http://mvnrepository.com/ 中搜索 groupId (一般为包名称),然后在其中选择一个版本的
2.1、 javax.persistence
<dependency> <groupId>javax.persistence</groupId> <artifactId>persistence-api</artifactId> <version>1.0.2</version> </dependency>
<dependency> <groupId>javax.transaction</groupId> <artifactId>jta</artifactId> <version>1.1</version> </dependency>
2.3、org.codehaus.jackson
<dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>1.9.13</version> </dependency>
2.4、org.powermock
<dependency> <groupId>org.powermock</groupId> <artifactId>powermock-module-junit4</artifactId> <version>1.6.4</version> </dependency>
3.执行maven命令时 目录不对
[ERROR] The goal you specified requires a project to execute but there is no POM in this directory (D:ServerGitRepositoryqcadoomes). Please verify you invoked Maven from the correct directory. -> [Help 1]
目标应当是你必须指定的一个用来执行maven的项目路径,但是没有POM文件在你指定的目录。 D:ServerGitRepositoryqcadoomes 请确认你在正确的目录执行了maven命令。
正确的路径是 D:ServerGitRepositoryqcadoomes
3.mvn install 系统资源不足
java.lang.OutOfMemoryError: PermGen space
怎么回事?老夫8G内存,真的连各项目都编译不了??? 当然不是了
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space从表面上看就是内存益出,解决方法也一定是加大内存。说说为什么会内存益出:这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Instance的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误。 在mvn install 时就因为加载了太多的类到 PermGen space区域,而此区域从不清理,加载多了当然会导致这个PermGen space区域溢出咯·
解决办法是:在环境变量中设置 MAVEN_OPTS的值 为 -Xmx512m -XX:MaxPermSize=256m 这样再次mvn install时,内存就不溢出了
4、由于缺少json包造成tomcat启动不起来
Related cause: org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [org.codehaus.jackson.map.ObjectMapper] for bean with name 'jacksonObjectMapper' defined in URL [jar:file:/E:/qcadoo-mes-community-bin-1.2.0/webapps/ROOT/WEB-INF/lib/qcadoo-view-1.2.0.jar!/qcadoo-web-context.xml]: problem with class file or dependent class; nested exception is java.lang.NoClassDefFoundError: org/codehaus/jackson/ObjectCodec
4.0原因: 缺少json 的jar包
4.1解决:配置依赖
①.D:ServerqcadooSourceDownLoadZIPmes-1.2.0pom.xml 120行加
②.重新 mvn clean install<dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.13</version> </dependency>
③.将 D:ServerqcadooSourceDownLoadZIPmes-1.2.0mes-application argetmes-application-1.2.0 下面的内容全部拷贝进 tomcat/ROOT/下面
④.再次启动tomcat