java项目转maven项目相关步骤与问题处理
2017-07-19 15:14
633 查看
项目背景介绍:spring+springMVC+mybatis ssm框架+redis+dubbo+mq+zk
通过myeclipse可将原项目直接转为maven项目,但是不符合maven项目的目录规范,需要调整对应的路径;
maven目录:
转换步骤:右键选中项目->configure(有些myeclise可能没有这个选项,需到网上查下怎么显示此选项,也可参照下面步骤)->Convert to Maven Projects... 就行了
同理去掉maven构建:右键选中项目->configure(有些myeclise可能没有这个选项,需到网上查下怎么显示此选项,也可参照下面步骤)->Convert to Plug-in Projects.. 就行了
myeclipse中选中项目右键无configure选项处理:
Window > Preferences > General > Capabilities > Advanced > MyEclipse Standard Tools >WTP Deprecated(Leave off) 然后点击OK,Apply,OK就行了。
转换成maven项目后,需要通过pom.xml导入对应包,导包语句如下:
<dependencies>
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
maven项目在tomcat中启动报了一堆错:
1. Caused by: java.lang.reflect.MalformedParameterizedTypeException
启动时报错,原因是dubbo 依赖 spring 2.5.6.SEC03,而我项目中有用spring 3.2.4.RELEASE,所以导致冲突。 在maven中把dubbo中的spring依赖去除就可以了。
如果你们项目中也报这个错,很可能也是因为jar包冲突造成的
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.3</version>
<exclusions>
<exclusion>
<artifactId>*</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
</exclusions>
</dependency>
2、Caused by: java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource
添加缺少的jar包:commons-collections-3.1.jar,commons-pool-1.3.jar,commons-dbcp.jar即可
3、Caused by: java.lang.IncompatibleClassChangeError: Found class org.objectweb.asm.AnnotationVisitor, but interface was expected
集成asm的jar冲突,可将项目中的包export导出看看多了哪些asm包,在像1方法中处理
4、Caused by: java.lang.ClassNotFoundException: org.springframework.http.CacheControl
出现这个问题我的处理办法是将各个spring的jar的版本统一,结果就好了
5、Caused by: java.lang.ClassNotFoundException: org.mybatis.spring.SqlSessionFactoryBean
缺少jar包 mybatis-spring.jar
6、Caused by: java.lang.ClassNotFoundException: org.I0Itec.zkclient.exception.ZkNoNodeException
缺少zk相关包,本项目主要是zkclient-0.10.jar与zookeeper-3.4.5.jar
7、org.xml.sax.SAXParseException; lineNumber: 21; columnNumber: 49; cvc-complex-type.2.4.c: 通配符的匹配很全面, 但无法找到元素 'dubbo:application' 的声明
缺少dubbo的包,加上;同时<dubbo:application name="msp_dubbo_consumer" />写成<dubbo:application name="msp_dubbo_consumer" ></dubbo:application> 至少我是这么处理的
8、java.lang.ClassNotFoundException: org.apache.cxf.transport.servlet.CXFServlet
缺少了对应jar包,加入即可,对应包为cxf-rt-transport-http-3.1.12.jar(当然,jar版本不一定要用3.1.12的)
9、org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'cxf' is defined
在applicationContext.xml中加入cxf的引用,<import resource="classpath:META-INF/cxf/cxf.xml" />
对于这个问题:好像高版本的spring会自动加载这几个文件的。如果没有加载的话,那么我们就手动加载,如上说明
10、将maven项目导入eclipse中提示“没为类型 Node 定义方法 getTextContent”
解决办法:改一下java 编译器编译顺序,这是jre 在 builder path 的最下层,所以编译器没有使用JRE 中的类,这时需要将JRE 的位置网上调节,选择旁边的复选框,然后使用右边的Down 和 Up 按钮 (现在JRE已经在最底层了,所以此时的Down 按钮不可用)就可以调节JRE的位置了。将JRE的位置调到Web APP Library上面 就ok 了。
原因:项目中的某个jar包中也有一个 org.w3c.dom.Element,实际运用中调用了这个类,而没有用jdk的,调整下顺序就好
11、maven编译提示“No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?”
解决办法:进入eclipse菜单,Window > Preferences > Java > Installed JREs,选中jdk作为默认选项,不要选jre,再将项目clean一下,重新运行即可
12、maven项目编译漏掉src/main/java下的xml配置文件:
解决办法:在build标签中加上下面一段话或者将所有xml文件放到src/main/resource目录下
<resources>
<!--编译之后不包含xml处理-->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
通过myeclipse可将原项目直接转为maven项目,但是不符合maven项目的目录规范,需要调整对应的路径;
maven目录:
转换步骤:右键选中项目->configure(有些myeclise可能没有这个选项,需到网上查下怎么显示此选项,也可参照下面步骤)->Convert to Maven Projects... 就行了
同理去掉maven构建:右键选中项目->configure(有些myeclise可能没有这个选项,需到网上查下怎么显示此选项,也可参照下面步骤)->Convert to Plug-in Projects.. 就行了
myeclipse中选中项目右键无configure选项处理:
Window > Preferences > General > Capabilities > Advanced > MyEclipse Standard Tools >WTP Deprecated(Leave off) 然后点击OK,Apply,OK就行了。
转换成maven项目后,需要通过pom.xml导入对应包,导包语句如下:
<dependencies>
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
maven项目在tomcat中启动报了一堆错:
1. Caused by: java.lang.reflect.MalformedParameterizedTypeException
启动时报错,原因是dubbo 依赖 spring 2.5.6.SEC03,而我项目中有用spring 3.2.4.RELEASE,所以导致冲突。 在maven中把dubbo中的spring依赖去除就可以了。
如果你们项目中也报这个错,很可能也是因为jar包冲突造成的
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.3</version>
<exclusions>
<exclusion>
<artifactId>*</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
</exclusions>
</dependency>
2、Caused by: java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource
添加缺少的jar包:commons-collections-3.1.jar,commons-pool-1.3.jar,commons-dbcp.jar即可
3、Caused by: java.lang.IncompatibleClassChangeError: Found class org.objectweb.asm.AnnotationVisitor, but interface was expected
集成asm的jar冲突,可将项目中的包export导出看看多了哪些asm包,在像1方法中处理
4、Caused by: java.lang.ClassNotFoundException: org.springframework.http.CacheControl
出现这个问题我的处理办法是将各个spring的jar的版本统一,结果就好了
5、Caused by: java.lang.ClassNotFoundException: org.mybatis.spring.SqlSessionFactoryBean
缺少jar包 mybatis-spring.jar
6、Caused by: java.lang.ClassNotFoundException: org.I0Itec.zkclient.exception.ZkNoNodeException
缺少zk相关包,本项目主要是zkclient-0.10.jar与zookeeper-3.4.5.jar
7、org.xml.sax.SAXParseException; lineNumber: 21; columnNumber: 49; cvc-complex-type.2.4.c: 通配符的匹配很全面, 但无法找到元素 'dubbo:application' 的声明
缺少dubbo的包,加上;同时<dubbo:application name="msp_dubbo_consumer" />写成<dubbo:application name="msp_dubbo_consumer" ></dubbo:application> 至少我是这么处理的
8、java.lang.ClassNotFoundException: org.apache.cxf.transport.servlet.CXFServlet
缺少了对应jar包,加入即可,对应包为cxf-rt-transport-http-3.1.12.jar(当然,jar版本不一定要用3.1.12的)
9、org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'cxf' is defined
在applicationContext.xml中加入cxf的引用,<import resource="classpath:META-INF/cxf/cxf.xml" />
对于这个问题:好像高版本的spring会自动加载这几个文件的。如果没有加载的话,那么我们就手动加载,如上说明
10、将maven项目导入eclipse中提示“没为类型 Node 定义方法 getTextContent”
解决办法:改一下java 编译器编译顺序,这是jre 在 builder path 的最下层,所以编译器没有使用JRE 中的类,这时需要将JRE 的位置网上调节,选择旁边的复选框,然后使用右边的Down 和 Up 按钮 (现在JRE已经在最底层了,所以此时的Down 按钮不可用)就可以调节JRE的位置了。将JRE的位置调到Web APP Library上面 就ok 了。
原因:项目中的某个jar包中也有一个 org.w3c.dom.Element,实际运用中调用了这个类,而没有用jdk的,调整下顺序就好
11、maven编译提示“No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?”
解决办法:进入eclipse菜单,Window > Preferences > Java > Installed JREs,选中jdk作为默认选项,不要选jre,再将项目clean一下,重新运行即可
12、maven项目编译漏掉src/main/java下的xml配置文件:
解决办法:在build标签中加上下面一段话或者将所有xml文件放到src/main/resource目录下
<resources>
<!--编译之后不包含xml处理-->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
相关文章推荐
- eclipse导入maven模块项目步骤以及问题处理
- 用Eclipse Maven 创建 Web 3.0 项目问题 正确的处理步骤
- 使用 IntelliJ IDEA 2016和Maven创建Java Web项目的详细步骤及相关问题解决办法
- maven项目java包名的路径问题
- maven web项目不能创建src/main/java等文件夹的问题
- maven工程项目导入eclipse相关问题解决办法
- java maven 相关问题
- Eclipse Java EE IDE 导入Maven项目问题
- maven项目开发时遇到的相关问题
- IntelliJ IDEA14.1中java项目Maven中没有配置JDK时的问题
- Myeclipse导入Maven项目找不到依赖包的问题处理
- maven web项目不能创建src/main/java等文件夹的问题
- 使用maven构建项目java.nio.BufferOverflowException问题的解决
- Eclilpse导入maven项目,无法自动构建为java项目的问题
- Maven编译项目下的.java文件时的编码问题
- 使用maven构建项目java.nio.BufferOverflowException问题的解决
- maven项目 无法运行main方法的问题。java.lang.ClassNotFoundException
- 关于maven项目在引入java project 时,打war包出错的问题
- 移动项目中JAVA与C/C++编解码相关的JNI动态库问题(.dll vs .so)
- Eclipse 中 新建maven项目 无法添加src/main/java 问题