1. Maven是什么:
Maven是一个项目管理工具,包含项目对象模型,一组标准集合,一个项目生命周期,一个依赖管理系统,和用来运行定义在生命周期阶段中插件目标的逻辑。
2. 如何配置maven:
1, 下载:从官网http://maven.apache.org/download.html获取maven2的文件包;
2,解压该maven到D:\work\maven,并配置一下环境变量:
在系统变量里的添加path:D:\work\maven\bin
3,在dos下输入命令:mvn -v,如果配置正确将会得到maven的版本信息等。
注意:需要配置%JAVA_HOME%
3. 创建Maven工程
使用命令创建:
1,在dos下进入要创建项目的目录,如D:\mytestproject;
2,输入命令创建项目
mvn archetype:create -DgroupId=com.test.mytest-DartifactId=mytestproject
3, 命令执行完成后可以看到在D:\mytestproject下会生产一个maven工程
4, 导入eclipse工程
D:\mytestproject>mvn -U clean eclipse:clean eclipse:eclipse
D:\mytestproject>mvn -U clean eclipse:clean eclipse:eclipse -DdownloadSources=true
使用eclips创建:
1. Eclipse中新建选择maven工程,
4. 配置文件元素相关说明:
groupId:项目或者组织的唯一标志,并且配置时生成的路径也是由此生成, 如com.test.mytest生成的相对路径为:/com/taobao/mytest
artifactId:项目的通用名称
packaging:打包的机制,如pom, jar, maven-plugin, ejb, war, ear, rar, par
version:项目的版本
name:项目的名称,Maven产生的文档用
url:哪个网站可以找到这个项目,提示如果Maven资源列表没有,可以直接上该网站寻找, Maven产生的文档用,一般有自己的资源库时不需要此项。
5. 常用命令
mvn package:依据项目将在target文件下生成jar文件:mytestproject-1.0-SNAPSHOT.jar
mvn clean:清除目标目录中的生成结果
mvn install: 将项目的jar文件添加到资源库中, 以备依赖此项目时使用
mvn eclipse:eclipse:生成Eclipse项目文件,此时项目可以成功import到eclipse中
mvn deploy:打包部署到仓库,需要有权限
mvn war inplace:打包为可执行jar包
mvn test -Dtest=类名 :执行某个测试类
mvn test执行所有测试类
6. Pom文件常用元素说明
1. 继承:项目可以通过parent元素使用继承,避免在一个项目中不断的重复同样的依赖元素,当一个项目声明一个parent的时候,它从父pom中继承信息,也可以覆盖父pom中的值,或者可以添加一些新的值。Maven在读取当前项目的pom之前,会使用这个父pom作为起始点,同样的父pom中的依赖也会被子项目继承过来。
<parent>
<artifactId>test-harvest.business</artifactId>
<groupId>com.test</groupId>
<version>2.1.4-SNAPSHOT</version>
</parent>
2. 多模块: 一个项目有多个模块,也叫做多重模块,或者合成项目。
如下定义,比如在父工程厦门会包括api工程和service工程
<modules>
<module>test-harvest.business-api</module>
<module>test-harvest.business-service</module>
</modules>
3. Build设置:bulid主要是配置编译相关的内容
1. Proviles:定义一些在项目生命周期中使用的环境变量
<profile>
<id>test</id> //表示是测试环境
<properties>
<props>src/main/filters/test.properties</props> //环境变量的配置文件
<projectName>${project.artifactId}</projectName>
使用于哪个项目
</properties>
<activation>
<activeByDefault>true</activeByDefault>//是否激活
</activation>
</profile>
2. 插件:项目中使用到的插件,比如junit测试用例执行插件
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>false</skip> //是否跳过测试用例执行
</configuration>
</plugin>
</plugins>
3. 资源:项目中需要指定的资源位置
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
4. 依赖关系
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version> //版本
<scope>test</scope> //表示是测试环境使用
</dependency>
7. Settings.xml:
maven的全局性的配置文件,使用于所有项目。在maven2中存在两个settings.xml,一个位于maven2的解压目录conf下面,作为全局性配置。对于团队设置,保持一致的定义是关键,所以maven2/conf下面的settings.xml就作为团队共同的配置文件,保证所有的团队成员都拥有相同的配置。当然对于每个成员,都需要特殊的自定义设置,如用户信息,所以另外一个settings.xml就作为本地配置。
一些配置说明:
1. localRepository:表示本地库的保存位置,也就是maven2主要的jar保存位置,默认在${user.dir}/.m2/repository,如果需要另外设置,就换成其他的路径,如:<localRepository>D:\\ Repository</localRepository>
2. offline:如果不想每次编译,都去查找远程中心库,那就设置为true。当然前提是你已经下载了必须的依赖包。
3. Servers:保存server相关的信息,
<server>