1. Maven安装
1、Maven下载
http://maven.apache.org/download.cgi
2、Maven环境变量配置
右键“计算机”,选择“属性”,之后点击“高级系统设置”,点击“环境变量”,来设置环境变量,有以下系统变量需要配置:
新建系统变量 MAVEN_HOME 变量值:D:\dev\apache-maven-3.5.0
编辑系统变量 Path 添加变量值: ;%MAVEN_HOME%\bin
3、最后检验配置是否成功:用win键+R,来打开命令行提示符窗口,即Dos界面,输入mvn --version 若出现以下情况说明配置成功
2. 修改本地仓库
打开D:\dev\apache-maven-3.5.0\conf下面的setttings.xml,添加localRepository标签
配置自己新建的仓库目录,不修改配置的话,默认的仓库地址是在C盘
<localRepository>D:\repository3.5</localRepository>
3. Eclipse配置settings
找到maven conf目录下的settings.xml
4. 配置settings.xml 连接nexus私服
1、在<servers>添加
<!--配置nexus仓库认证信息 -->
<server>
<id>maven-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>maven-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
2、在<mirrors>下添加:
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<name>nexusmirror for all repositry</name>
<url>http://127.0.0.1:8081/repository/maven-public</url>
</mirror>
3、在<profiles>下添加:
<!--配置Nexus仓库 -->
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>central</id>
<name>CentralRepository</name>
<url>https://repo.maven.apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<name>CentralpluginRepository</name>
<url>https://repo.maven.apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
</profile>
4、在</profiles>后面添加:
<!--激活Nexus仓库配置 -->
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
5、密码加密
上面在settings.xml文件中保存的服务器密码是明文方式保存的,存在一定的安全隐患,下面介绍下如何加密保存
很简单,通过maven提供的命令就可以完成,mvn -emp or mvn--encrypt-master-password
首先创建一个安全密码:
E:\maven\apache-maven-3.2.5\bin>mvn -emp mypwd
{jHorajwXpMMH8urL7y9Xeh3vCOaW9OniO8la9ooPMOE=}
然后将生成的密码,copy到~/.m2/settings-security.xml中,没有这个文件则自己创建一个
<settingsSecurity>
<master>{jHorajwXpMMH8urL7y9Xeh3vCOaW9OniO8la9ooPMOE=}</master>
</settingsSecurity>
然后将服务器密码进行加密
E:\maven\apache-maven-3.2.5\bin>mvn -ep xxx
{M80C6eJf+6IHYBPHzJr/mTOl12vl2aAOMPLMQAer6wg=}
然后将加密之后的密文替换之前的服务器明文密码
<servers>
<server>
<id>releases</id>
<username>admin</username>
<password>{M80C6eJf+6IHYBPHzJr/mTOl12vl2aAOMPLMQAer6wg=}</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>{M80C6eJf+6IHYBPHzJr/mTOl12vl2aAOMPLMQAer6wg=}</password>
</server>
</servers>
5. 手动部署第三方构件至Nexus仓库
对于一些开源或者有版权的jar文件,他们在远程仓库没有,所以只能将他们先下载下来,再手动上传到nexus私服上。
5.1 确定Nexus中要部署的3rd-party宿主仓库连接
该宿主仓库一般转为用来存放第三方构件的仓库。
http://localhost:8081/repository/3rd-party/
5.2在settings.xml配置3rd-party仓库认证信息
<server>
<id>nexus-3rd-party</id>
<username>admin</username>
<password>admin123</password>
</server>
5.3命令行部署到nexus上
通过命令行来操作部署D:\dev\jar\ojdbc14_g-10.2.0.4.jar目录下的jar包到nexus的3rd-party仓库中。其中需要你自定义groupId,artifactId,version,packaging信息。其中的-Dfile填写jar的位置,-Durl填写nexus中3rd-party的连接,-DrepositoryId填写在settings.xml配置的认证信息的id。
本地:
mvn deploy:deploy-file-Dfile=D:\dev\jar\ojdbc14_g-10.2.0.4.jar -DgroupId=oracle -DartifactId=ojdbc14_g-Dversion=10.2.0.4 -Dpackaging=jar-Durl=http://localhost:8081/repository/3rd-party/-DrepositoryId=nexus-3rd-party
服务器:
mvn deploy:deploy-file-Dfile=D:\dev\jar\ojdbc14_g-10.2.0.4.jar -DgroupId=oracle-DartifactId=ojdbc14_g -Dversion=10.2.0.4 -Dpackaging=jar-Durl=http://192.168.2.208:8081/repository/comba-lib/-DrepositoryId=nexus-comba-lib
dll包:
mvn deploy:deploy-file-Dfile=D:\dev\jar\sap\sapjco3.dll -DgroupId=sapjco3.dll -DartifactId=sapjco3-Dversion=1.0 -Dpackaging=dll -Durl=http://192.168.2.208:8081/repository/comba-lib/-DrepositoryId=nexus-comba-lib
maven工程引用:
<dependency>
<groupId>sapjco3.dll</groupId>
<artifactId>sapjco3</artifactId>
<version>1.0</version>
<type>dll</type>
</dependency>
6. 部署当前maven项目(jar/war包)至远程仓库
http://www.jianshu.com/p/6c5e2b7b9408
私服的一个作用是部署公司内部生成的构件以及一些无法从外部仓库获取的构件。那么如何把maven项目部署到私服上或者其他的远程服务器上呢?
步骤-1配置pom.xml
需要编写pom.xml文件,配置distributionManagement元素。
<distributionManagement>
<repository>
<id>maven-releases</id>
<name>Maven Release Repository</name>
<url>http://XX.XX.XX.XX:8081/repository/maven-releases</url>
</repository>
<snapshotRepository>
<id>maven-snapshots</id>
<name>Maven Snapshot Repository</name>
<url>http://XX.XX.XX.XX:8081/repository/maven-snapshots</url>
</snapshotRepository>
</distributionManagement>
- distributionManagement包含repository和snapshotRepository子元素,前者表示发布版本构件的仓库,后者表示快照版本的仓库。
- id为远程仓库的唯一标识,name是为了方便人阅读,url表示该仓库的地址。
步骤-2配置settings.xml
- 往仓库部署构件往往需要认证,配置方式如上面所讲,只需要配置settings.xml中的server元素。同时其id要与仓库id匹配。不论部署还是下载构件,当需要认证时配置方式一样。
<!--配置nexus仓库认证信息 -->
<server>
<id>maven-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>maven-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
步骤-3使用部署命令
- 在命令行运行 mvn clean deploy。Maven就会将项目构建输出的构件部署到配置对应的远程仓库,如果项目版本是快照版本就部署到快照版本仓库地址,同理发布版本就部署到发布版本仓库地址。
- 右键工程>Run AS>Maven build…
输入clean deploy 点击run
- 右键工程>Run AS>Run Configurations,可以查看配置的maven build
部署成功后,在nexus私服上可以看到发布的jar包
<version>1.0</version>
这个会部署到nexus release正式库中
如果版本号里面含有xx.xx-SNAPSHOT,就会发布到快照版本仓库,其中2.1-SNAPSHOT是不稳定的快照版本。
<version>0.0.1-SNAPSHOT</version>
7. Maven 命令
在使用mvn package进行编译、打包时,Maven会执行src/test/java中的JUnit测试用例,有时为了跳过测试,会使用参数-DskipTests和-Dmaven.test.skip=true,这两个参数的主要区别是:
-DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。
-Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类。