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
3.解压之后,记录下路径,在系统环境变量中添加 M2_HOME 和 MAVEN_HOME,最后在PATH中添加。
4.验证是否安装成功,在cmd输入命令mvn -version验证。
若是出现版本的信息,表示安装成功了。
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下的
改为你想放的位置:
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
5. 将本地jar文件安装到本地maven仓库
这里以bcprov-jdk16-1.46.jar为例来讲解,首先到http://www.codedocs.net/maven/browse去搜索bcprov-jdk16,并下载对应版本下来
安装:
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>