普通web项目转为maven项目整理
Posted wodediqizhang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了普通web项目转为maven项目整理相关的知识,希望对你有一定的参考价值。
现在越来越多的公司和团队开始使用maven来管理项目。对个人而言,之前一直不太喜欢maven结构的项目,需要配置pom.xml,每次打开IDE之后都需要加载maven,电脑配置低的话就卡半天,balabala。后来用得多了也就习惯了,就跟用Myeclipse用习惯了,再用IDEA时一样,估计是大多数人的通病,习惯于一个模式,没有外力就不想再更换(还不是因为懒,哈哈)。好了,言归正传,之前的时候接到个任务,需要把一个普通的web项目改成maven的,花了点时间就研究了研究。
1.maven结构
maven结构的web项目目录如下:根据maven项目“约定优于配置”的原则,其中./src/main/用于存放源代码,./src/test用于存放单元测试代码,./target用于存放编译、打包后的输出文件。按理说src/main/作为Source Folder就可以了,不过为了方便开发,通常会在main下面加上java和resources两个目录,其中java放置java代码,而resources文件夹存放相关配置文件)。
2.maven的配置都在pom.xml里面
2.1.pom.xml在改的时候我主要用到三个配置<dependencies>、<profiles>、<build>。
2.1.1.<dependencies>是项目引入插件所需要的额外依赖,主要是依赖的jar包。<dependency>
<!-- 项目或者组织的唯一标志,并且配置时生成路径也是由此生成 -->
<groupId>junit</groupId>
<!-- 项目的通用名称 -->
<artifactId>junit</artifactId>
<!-- 项目的版本 -->
<version>4.11</version>
<!-- 表示开发的时候引入,发布的时候不会加载此包,其他的还有compile(缺省值)、provided、runtime、system -->
<scope>test</scope>
</dependency>
2.1.2.因为改造前的项目的jar好多是框架私有包,在maven仓库没有,这时就需要将jar包install到本地maven仓库,
mvn install:intall-file -Dfile=myprivatejar.jar -DgroupId=com.cn.wddqz -DartifactId=non-maven-proj -Dversion=1 -Dpackaging=jar
2.1.3.dependency的version里还可以用$junit.version表示,然后再<properties>中加入<junit.version>4.11</junit.version>
2.2.profiles:在列的项目构建profile,用来激活不同的profile
因为项目有多个测试环境,所以根据不同的环境要有若干套配置文件,次时就需要多个profile,用来放置不同的配置文件。此时maven结构中的resouces就需要有若干个文件夹了ceshi1_resouces、ceshi2_resouces、ceshi3_resouces等.
配置文件如下:
<profile>
<id>ceshi1</id>
<properties>
<package.environment>ceshi1_resouces</package.environment>
</properties>
<activation>
<activeByDefault>true</activeByDefault> <!-- 设置默认打包那个环境下的配置文件 -->
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<!-- 包含空文件夹,指的是maven编译打包的时候会将空文件夹也编译打包进去,该参数2.4版本后才能使用 -->
<includeEmptyDirectories>true</includeEmptyDirectories>
</configuration>
</plugin>
</plugins>
</build>
</profile>
注:进行maven编译的时候需要加上" -P ceshi1 "
2.3.build构建项目需要的配置信息:
示例如下:<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<!-- maven-compiler-plugin用来指定JDK版本和编码 -->
<artifactId>maven-compiler-plugin</artifactId>
<version>2.4</version>
<configuration>
<!-- 编译器的版本设定为1.6,应该指的是jdk,默认是用的1.3,版本太老 -->
<source>1.6</source><!-- 源代码使用的开发版本 -->
<target>1.6</target><!-- 需要生成的目标class文件的编译版本 -->
<!-- 一般而言,target与source是保持一致的,但是,有时候为了让程序能在其他版本的jdk中运行(对于低版本目标jdk,源代码中需要没有使用低版本jdk中不支持的语法),会存在target不同于source的情况 -->
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<!-- maven-war-plugin进行打包 -->
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<includeEmptyDirectories>true</includeEmptyDirectories>
<!-- war包的名字 -->
<warName>MavenDemo</warName>
<webResources>
<resource>
<!-- package.environment就是profile中的配置文件路径 -->
<directory>$project.basedir/src/main/$package.environment</directory>
<targetPath>WEB-INF/classes</targetPath>
<filtering>true</filtering>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
</build>
3.注意事项:
3.1.maven项目改造前,IDE里面需要装maven插件,本地配置maven的环境变量。3.2.我是先新建了个maven的web项目,然后将原来web项目的源码拷贝到对应目录的方式实现的。
4.后记:
改造的时候只用到了以上的一些内容,基本上完成了任务,基于个人能力可能有些方面没考虑到,或者项目比较简单,而没有用到更复杂的知识,如果大家有更好的案例,欢迎补充。
加个Apache Maven 入门:
Apache Maven 入门篇 ( 上 )
Apache Maven 入门篇 ( 下 )
以上是关于普通web项目转为maven项目整理的主要内容,如果未能解决你的问题,请参考以下文章