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>
然后这时,可以查询一下项目中jar的依赖关系,因为一个jar包在下载时可能会级联下载其他jar包:
可以使用依赖关系树命令: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包的老版本即可。