Maven
Maven简介
Maven是一个项目管理工具。包含项目对象模型(POM)、项目生命周期(验证validate,编译compile,测试test,打包package,检查verify,安装install,部署deploy)和一个依赖管理系统。
Maven和Ant
Ant是一个基于Java的构建工具,关注于预处理、编译、打包、测试和分发。
Maven除了构建外,还提供了生成报告、Web站点。
Maven下载
http://maven.apache.org/download.html
安装
解压Maven,设置两个环境变量
M2_HOME=D:\apache-maven-3.2.1
PATH=%PATH%;%M2_HOME%\bin
用户相关配置和仓库
~/.m2/settings.xml
该文件包含了用户相关的认证,仓库和其它信息的配置,用来自定义Maven的行为。
~/.m2/repository/
该目录是你本地的仓库。当你从远程Maven仓库下载依赖的时候,Maven在你本地仓库存储了这个依赖的一个副本。
Maven仓库(Repositories)
Maven仓库分为两种,本地仓库和远程仓库。
本地仓库缺省安装路径在用户目录下,如:C:\Users\Administrator.m2\repository,可修改setting.xml文件中的localRepository更换。
远程仓库主要有三种类型:私服,中央仓库及其他公共库。私服需要我们自己搭建(如Nexus),中央仓库指的是Maven中央仓库,其他公共库如阿里远程仓库。
当我们执行构建时,寻找路径优先级依次为:本地仓库 -> 私服 -> 中央仓库。
Nexus(仓库管理器)
仓库管理器有两个服务目的:首先它的角色是一个高度可配置的介于你的组织与公开Maven仓库之间的代理,其次它为你的组织提供了一个可部署你组织内部生成的构件的地方。
nexus-2.7.2-03-bundle\nexus-2.7.2-03\bin\jsw\windows-x86-32\console-nexus.bat
http://localhost:8081/nexus
admin/admin123
上传jar包到Nexus
Repositories/3rd party/Artifact Upload
GAV Definition:GAV Parameters
Group:com.mopon
Artifact:util
Version:2.0.1
Packaging:jar
Maven命令将jar包加入到本地仓库
mvn install:install-file -Dfile=aliyun-sdk-alipay-1.0.jar -DgroupId=com.aliyun.alipay -DartifactId=aliyun-sdk-alipay -Dversion=1.0 -Dpackaging=jar
跳过单元测试打包
mvn clean
mvn package -Dmaven.test.skip=true
mvn clean package -Dmaven.test.skip=true
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
配置阿里云仓库
<repositories>
<repository>
<id>central</id>
<name>Nexus aliyun</name>
<layout>default</layout>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
或修改setting.xml
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
远程仓库认证,修改setting.xml
<servers>
<server>
<id>jtw-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>