Java Web工程转换为maven web工程

博客引用处(以下内容在原有博客基础上进行补充或更改,谢谢这些大牛的博客指导):Java Web工程转换为基于Maven的Web工程

1,首先浏览java web工程的结构如下:
Java Web工程转换为maven web工程_第1张图片
2,开始转移文件,先 拷贝java文件
把java web工程 Java Resources目录下的src目录下的java文件都拷贝到maven工程中的Java Resources目录src/main/java目录下面 (这里最好仅仅拷贝的是java文件,但是资源文件也是可以放到这里的)
Ps:
1,如果java web项目 源目录分多个,在maven里面最好用一个src/main/java,把同包的java文件放在一起,保证类的package包路径不变。
2,当然也可以在maven web中配置多源目录,多资源目录,以及读取源目录资源文件等。

Java Web工程转换为maven web工程_第2张图片
3,拷贝配置文件
把java web工程 Java Resources目录下的conf目录下的xml配置文件都拷贝到maven工程中的Java Resources目录src/main/resources目录下面
Ps:
1,配置文件包括所有非.java的文件,包括.xml , .properties等
2,工程所有配置文件,即使不在conf目录(只是当前项目的配置全放在了conf,其他项目不一定,要求全部的配置文件,包括src源目录里面包含的配置文件)
3,注意资源文件原本所在的包路径,要保持不变。
Java Web工程转换为maven web工程_第3张图片
4,拷贝web文件(所有的webapp或者webcontent里面的文件)
把java web工程 Web Root目录下所有文件文件如下:
Java Web工程转换为maven web工程_第4张图片
把java web工程 Web Root目录下所有文件文件都拷贝到maven工程中的webapp目录下面
Java Web工程转换为maven web工程_第5张图片

到目前为止,java web项目转Maven项目的文件迁移工作全部完成,接下来要做的是个细活,体力活,把java web项目所有引用jar包,都加入到maven pom依赖中来。
5,添加POM依赖
首先需要去java web项目中查看都引用了哪些jar包,去java web工程 Java Resources目录下的Libraries查看:
Ps:
1,这里引用的jar如果在maven搜索库中找不到,或者jar属于自己封装的,那么就作为外部jar引入到pom文件中去,把所有的jar放在webapp/WEB-INF/lib目录中去。

Java Web工程转换为maven web工程_第6张图片
上面只是截取了部分,其实很多,有七八十个jar包,这一个个查都得半天。不过除了一个一个查,也没有其他办法了。

这里介绍下如何查maven依赖,比如我要查commons-io-2.4.jar对应的maven 依赖
Java Web工程转换为maven web工程_第7张图片
首先登录maven repository官网http://mvnrepository.com,搜索这个包,如下:
Java Web工程转换为maven web工程_第8张图片
看见结果中有2.4这个版本,点击进去,copy红框中的结果,将其粘贴进pom,其他剩下的就是这样一个一个查,一个一个添加。
Java Web工程转换为maven web工程_第9张图片

过程中可能会碰到这种情况,在maven官网查不到你需要的那个jar包,这个时候,你需要把这个jar包加入到你的本地库,或者以后生产环境中的线上库。

如何加入本地库,进入你需要添加的jar包所在文件路径,然后指定group id和artifactId,如下:

 mvn install:install-file -DgroupId=com.ibatis -DartifactId=ibatis -Dversion=1.0 -Dpackaging=jar -Dfile=E:/ibatis.jar -DgeneratePom=true

6,maven命令检查maven依赖以及项目是否有问题

mvn clean install

检查成功的结果:

[INFO] --- maven-install-plugin:2.4:install (default-install) @ BUGManager_maven ---
[INFO] Installing /Users/xiaolong/Documents/workspace/BUGManager_maven/target/BUGManager_maven-0.0.1-SNAPSHOT.war to /Users/xiaolong/Documents/repository/m2/repository/com/autonavi/rus/BUGManager_maven/0.0.1-SNAPSHOT/BUGManager_maven-0.0.1-SNAPSHOT.war
[INFO] Installing /Users/xiaolong/Documents/workspace/BUGManager_maven/pom.xml to /Users/xiaolong/Documents/repository/m2/repository/com/autonavi/rus/BUGManager_maven/0.0.1-SNAPSHOT/BUGManager_maven-0.0.1-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.861 s
[INFO] Finished at: 2016-01-23T16:01:10+08:00
[INFO] Final Memory: 34M/285M
[INFO] ------------------------------------------------------------------------
localhost:BUGManager_maven dddd$

出现错误后,查找正确的jar包,即可。

7,maven web的启动方式
1,tomcat:run
2,tomcat server服务添加
3,jetty运行
介绍jetty运行方式:首先在POM中添加jetty插件


        
            
                org.mortbay.jetty
                maven-jetty-plugin
                6.1.26
                
                    ${basedir}/src/main/webapp
                
                                   
        
    

在工程上,单击鼠标右键,点击Rus As—>Maven Build… ,并在Goals中输入命令:jetty:run
Java Web工程转换为maven web工程_第10张图片
点击RUN,可以成功启动maven web项目。

一些在转换过程中需要处理的问题:
问题1:引用外部jar的方式,这里是放到了webapp/WEB-INF/lib中

     
        dwr  
        dwr  
        2.0.6  
        system  
        ${project.basedir}/src/main/webapp/WEB-INF/lib/dwr.jar  
    	

问题2:jar引用冲突
1,同一个pom文件中对同一个jar的引用只能有一个,不能同时引用多个版本的该jar。
2,暂时没用,并且发布后会跟tomcat容器中的jar冲突,那么找到那个jar依赖引用了这些jar,用exclusions排除掉就行了,如:


		    org.jasig.cas
		    cas-server-support-jdbc
		    3.5.2
		    runtime
		   	
		      
		      	  org.apache.santuario
   				 xmlsec
		      
		    
		

3,在项目测试编译阶段需要用一些jar,但是发布后会导致跟tomcat容器里的jar冲突,所以设置使用范围,如:


		    javax.servlet
		    javax.servlet-api
		    4.0.0
		    provided
		
		
		    javax.servlet.jsp
		    jsp-api
		    2.2
		    provided
		 

问题3:当对maven项目update project 后,发现JDK还是默认的1.5这样的
解决方法是在pom.xml文件中设定maven项目的JDK版本,这样就不会有问题了


    
      org.apache.maven.plugins
      maven-compiler-plugin
      
        1.7
        1.7
         UTF-8  
           
               
             ${java.home}\lib\rt.jar;${java.home}\lib\jce.jar  
           
      
    

你可能感兴趣的:(maven,java相关)