1.完成 maven环境的搭建
http://www.blogjava.net/fancydeepin/archive/2012/07/13/382965.html
2.按照maven的目录结构整理之前web应用文件夹
src
----main
--------java (纯java文件)
--------resources (项目中的配置文件,主要为xml和properties文件,注意保持各配置文件所在的包不变)
--------filters (全局配置文件,dev test production)
--------webapp (WebRoot下的文件)
pom.xml (主要有项目名的配置、对项目所依赖的jar包的配置,对项目构建环境的配置)
3.整理pom文件,完成构建,至BUILD SUCCESS
对照之前web项目中的lib目录下的所有jar包,在maven仓库中搜索各jar包(搜索是有技巧的,直接根据搜索没有根据jar包结构搜索靠谱),整理出各ar包的groupId artifactId version,尽量使用同一版本的jar包(有些不带有版本号的jar包,可以通过解压)。——这个是体力活儿~
形如:
<dependency> <groupId>com.ckfinder.connector</groupId> <artifactId>ckfinder</artifactId> <version>2.3</version> </dependency>
可以使用依赖关系树命令:mvn dependency:tree
然后排除掉级联的jar包,可使项目中的jar包做到最简
然后使用构建命令:mvn clean compile
mvn后可以有-e 或 -u
来完成构建
如果构建失败,可以根据提示信息检查一下问题出在了哪里。 sun相关的警告信息可以不用理睬。
经过排查,完成构建。
另外,为了便于在本地调试,maven还提供了文件的拷贝、删除 的任务配置,下边是pom.xml中的配置
<!-- Copy 资源, 配置文件到webapp 目录, 便于本地调试 --> <plugin> <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <id>copy_web_resource</id> <phase>compile</phase> <configuration> <tasks> <echo >Copy dependency lib and class compiled.</echo> <copy todir="src/main/webapp/WEB-INF/classes" overwrite="true"> <fileset dir="target/classes" > <include name="**/*.*" /> </fileset> </copy> <copy todir="src/main/webapp/WEB-INF/classes" overwrite="true" includeEmptyDirs="false" > <fileset dir="src/main/resources_generate" > <exclude name="**/*.class" /> </fileset> </copy> <delete dir="src/main/resources_generate" /> <delete dir="target" /> </tasks> </configuration> <goals> <goal>run</goal> </goals> </execution> </executions> </plugin>
以下是执行信息:
4.解决jar包版本问题,使项目启动成功
如果启动报错,那么可以参照以下思路去解决:
把原来的那套jar包拷贝过来,编译、启动——要确认是正常的
然后把那些版本有变化的jar包逐一替换,替换后仍能正常启动,说明启动报错不是由于该jar包的版本变化引起的;
当某个jar包在替换时,不能正常启动了,那就表明是该jar包的版本变化引起的——这时采用该jar包的老版本即可。