Maven是什么?

Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。

在多个开发团队环境时,Maven可以设置按标准在非常短的时间里完成配置工作。由于大部分项目的设置都很简单,并且可重复使用,Maven让开发人员的工作更轻松,同时创建报表,检查,构建和测试自动化设置。

Windows安装Maven

1.首先需要JDK的支持,Maven3.2.*版本需要JDK1.6的支持,Maven3.3.*以上需要JDK1.7以上的支持,JDK的安装以及配置在此不多赘述。 

2.前往Maven官网下载zip包,地址:​​http://maven.apache.org/download.cgi​​ 

Maven安装以及环境配置(Windows)_maven

3.解压之后,记录下路径,在系统环境变量中添加 M2_HOME 和 MAVEN_HOME,最后在PATH中添加。 

Maven安装以及环境配置(Windows)_jar_02 

Maven安装以及环境配置(Windows)_资源库_03 

4.验证是否安装成功,在cmd输入命令mvn -version验证。 

Maven安装以及环境配置(Windows)_.net_04 

若是出现版本的信息,表示安装成功了。

Maven配置

1.Maven本地资源库

Maven的本地资源库是用来存储所有项目的依赖关系(插件jar和其他文件,这些文件被Maven下载)到本地文件夹。很简单,当你建立一个Maven项目,所有相关文件将被存储在你的Maven本地仓库。 

Maven的本地资源库默认为 .m2 目录文件夹: 

Unix/Mac OS X – ~/.m2 

Windows – C:\Documents and Settings{your-username}.m2 

我们可以找到 {M2_HOME}\conf\setting.xml, 更新 localRepository项,选择我们想要存放的目录位置。 

默认是在user.home下的 

Maven安装以及环境配置(Windows)_.net_05

改为你想放的位置: 

Maven安装以及环境配置(Windows)_自定义_06

2.Maven中央存储库与远程存储库

当你建立一个 Maven 的项目,Maven 会检查你的 pom.xml 文件,以确定哪些依赖下载。首先,Maven 将从本地资源库获得 Maven 的本地资源库依赖资源,如果没有找到,然后把它会从默认的 Maven 中央存储库 – ​​http://repo1.maven.org/maven2/​​ 查找下载。 

若是中央存储库也没有找到,还可以在pom.xml中自定义远程存储库,Maven会去远程存储库下载,例如: 

告诉 Maven 来获得 Java.net 的依赖,你需要声明远程仓库在 pom.xml 文件这样:



<repositories>
<repository>
<id>java.net</id>
<url>https://maven.java.net/content/repositories/public/</url>
</repository>
</repositories>


另外

由于maven中心库是国外网站,连接下载速度很是揪心,所以强烈推荐使用阿里云的镜像库,主流jar包都有,而且速度非常快,如图在.\conf\setting.xml文件中进行如下配置。



<mirrors>
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>central</id>
<name>Maven Repository Switchboard</name>
<url>http://repo1.maven.org/maven2/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
<mirror>
<id>ibiblio</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>
</mirror>
<mirror>
<id>jboss-public-repository-group</id>
<mirrorOf>central</mirrorOf>
<name>JBoss Public Repository Group</name>
<url>http://repository.jboss.org/nexus/content/groups/public</url>
</mirror>
<mirror>
<id>google-maven-central</id>
<name>Google Maven Central</name>
<url>https://maven-central.storage.googleapis.com
</url>
<mirrorOf>central</mirrorOf>
</mirror>
<!-- 中央仓库在中国的镜像 -->
<mirror>
<id>maven.net.cn</id>
<name>oneof the central mirrors in china</name>
<url>http://maven.net.cn/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>


个人机器上配置的一个源也工作良好



<mirrors>
<!-- mirror
| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
|
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryId</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://my.repository.com/repo/path</url>
</mirror>
-->
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>


 

3.安装自定义jar包到本地Maven库

当出现下列情况时: 

1.要使用的 jar 不存在于 Maven 的中心储存库中。 

2.您创建了一个自定义的 jar ,而另一个 Maven 项目需要使用。 

远程服务器需要在settings.xml中配置server用户名密码

<server>

<id>n</id>

<username>abc</username>

<password>12345</password>

</server>

需要手动将所需要的jar包存放至Maven本地资源库,可以再cmd中输入以下命令:



mvn install:install-file -Dfile=c:\userdefined-1.0.jar -DgroupId=pers.test.code -DartifactId=userdefined -Dversion={1.0} -Dpackaging=jar

远程库命令如下
mvn deploy:deploy-file -DgroupId=com.abc.com3rd.policy -DartifactId=policy-sdk -Dversion=20180502102622 -Dpackaging=jar -Dfile=D:\jar\local_policy.jar -DrepositoryId=repo-huotu -Durl=http://repo.abc.com:8081/nexus/content/repositories/releases/ -DgeneratePom=false


各参数代表含义为:



-Dmaven.test.skip=true                              //跳过编译、测试
-Dfile=D:\MvnProject\service-mvn-1.0.0.jar //jar包文件地址,绝对路径
-DgroupId=pri.roy.mvn.test //gruopId--pom坐标,自定义
-DartifactId=mvn-api //artifactId--pom坐标,自定义
-Dversion //版本号
-Dpackaging //打包方式
-DrepositoryId //远程库服务器ID
-Durl //远程库服务器地址


安装成功后,在pom.xml文件中可以使用了



<dependency>
<groupId>pers.test.code</groupId>
<artifactId>userdefined </artifactId>
<version>1.0</version>
</dependency>


 

4. maven搜索

国内:​​http://www.codedocs.net/maven/browse​

国外:​​http://mvnrepository.com/​

 

5. 将本地jar文件安装到本地maven仓库

这里以bcprov-jdk16-1.46.jar为例来讲解,首先到​​http://www.codedocs.net/maven/browse​​去搜索bcprov-jdk16,并下载对应版本下来

Maven安装以及环境配置(Windows)_maven_07

安装:



cd /home/workspace/software
wget http://central.maven.org/maven2/org/bouncycastle/bcprov-jdk16/1.46/bcprov-jdk16-1.46.jar
mvn install:install-file -Dfile=/home/workspace/software/bcprov-jdk16-1.46.jar -DgroupId=org.bouncycastle -DartifactId=bcprov-jdk16 -Dversion=1.46 -Dpackaging=jar


其中maven的参数在网页中有,即:



<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk16</artifactId>
<version>1.46</version>
</dependency>