前言
- maven 3.5.0
- eclipse 4.7.1
- windows 7
- wps 10.1( excel可以)
- 有一个java ee的web项目,需要改造成maven项目
操作
准备
- 打开项目所在目录,比如为D:\abc
添加pom.xml文件
在项目的根目录,添加一个最简单的pom.xml文件,或者从其它项目拷贝一个pom.xml文件,将不相关的部分删除。
下面的pom.xml,修改一下可以直接使用。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>groupId,替换成自己的</groupId>
<artifactId>artifactId,替换成自己的</artifactId>
<packaging>war</packaging>
<version>1.0</version>
<name>name,替换成自己的</name>
<url>http://maven.apache.org</url>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- contextRoot为/,也可以为别的,看着修改 -->
<m2eclipse.wtp.contextRoot>/</m2eclipse.wtp.contextRoot>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>项目名字,替换成自己的</finalName>
</build>
<repositories>
<repository>
<!-- id必须唯一 -->
<id>myRepository1_1</id>
<!-- 见名知意即可 -->
<name>aliyun Snapshots</name>
<!-- 仓库的url地址 -->
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</repository>
</repositories>
</project>
修改目录结构
将类文件的源代码,移到目录src/main/java下。(该目录不存在时,手工创建)
将配置文件,移到目录src/main/resources下。(该目录不存在时,手工创建)
将jsp、html、WEB-INF等,移到目录src/main/webapp下。(该目录不存在时,手工创建)
正确放置jar文件
要改造已有项目到maven,较为繁琐的一件事儿为添加dependency。一个一个的添加dependency,并确定dependency的groupId、artifactId、version较为耗时。如果有百八十个jar,查找对应的groupId、artifactId、version还是很累人,也很雷人的。
这里采取的方法,就避免查找对应的groupId、artifactId、version,可以很快速的改造项目到maven。
具体思路为:将jar全部放置到src/main/webapp/WEB-INF/lib目录下。添加dependency时,指定systemPath。
将jar全部放置到src/main/webapp/WEB-INF/lib目录下,是因为:使用maven package时,会将src/main/webapp/WEB-INF/lib目录下的jar当作文件拷贝到package后的文件中,且位置正确。
指定systemPath,是因为:不让maven去仓库下载jar,直接使用项目中的jar文件,避免查找对应的groupId、artifactId、version。
综上所述,这步只需要:将jar文件都放到src/main/webapp/WEB-INF/lib目录下。
添加dependency
- 打开cmd,进入D:\abc\src\main\webapp\WEB-INF\lib目录。
- 将lib目录输出到某个文件中。执行命令: dir > d:\dir.txt。
- 将dir.txt的内容拷贝到wps表格中(excel中也可以)的A列(后面公式是按照A列来编写的)。
- 在B1单元格编写公式:=TRIM(MID(A1,37,100)),并向下拖拽公式到所需要的单元格为止。
- 将C列设置成从1开始的自增数字,并应用到所需要的单元格为止。
- 在D1单元格填写公式:如下,并向下拖拽公式到所需要的单元格为止。
="<dependency>
<groupId>group-local</groupId>
<artifactId>artifact-id-"&C1&"</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/"&B1&"</systemPath>
</dependency>"
- 将前6步拼接出的dependency,黏贴到pom文件中。
添加eclipse支持
如果项目之前就是eclipse中创建的项目,本步也不是必须的。
//先清空eclipse配置信息
# mvn eclipse:clean
//重新添加eclipse配置信息
# mvn eclipse:eclipse
导入到eclipse中
import项目,并在eclipse配置成maven项目。
至此改造完成。