配置步骤
1.远程仓库配置
在maven settings.xml文件中设置profile
<profile>
<id>nexus</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>nexus-repo</id>
<!--仓库地址-->
<url>http://host:8081/nexus/content/groups/public</url>
<releases>
<!--支持从此仓库下载release版本-->
<enabled>true</enabled>
<!--从远程仓库检查更新的频率,默认daily,表示每天检查一次,其他可用值:
never——从不检查更新
always——每次构建都检查更新
interval:X——每隔X分钟检查一次更新,X值为整数 -->
<updatePolicy>daily</updatePolicy>
<!--检查校验和文件的策略,默认为warn,maven执行构建时输出警告信息,其他可用值:
fail——遇到校验和错误就让构建失败
ignore——完全忽略校验和错误 -->
<checksumPolicy>warn</checksumPolicy>
</releases>
<!-- 表示不可以从此仓库下载snapshot版本 -->
<snapshots>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
</repository>
</repositories>
<!-- 插件仓库 -->
<pluginRepositories>
<pluginRepository>
<id>nexus-repo</id>
<url>http://host:8081/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
2.远程认证配置
往远程仓库部署构件时,一般需要认证,需要为之提供nexus部署用户的认证信息(用户名、密码)。
在maven settings.xml文件中设置server:
<server>
<id>nexus-airkisser</id>
<username>my nexus username</username>
<password>my nexus password</password>
</server>
3.部署至远程仓库配置
在项目pom.xml文件中配置:
<distributionManagement>
<!--settings.xml中的settings.servers.server.id和pom.xml中的distributionManagement.repository.id的值必须相等-->
<repository>
<id>nexus-airkisser</id>
<!--远程仓库发布版本仓库地址-->
<url>http://host:8081/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>nexus-airkisser</id>
<!--远程仓库快照版本仓库地址-->
<url>http://host:8081/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
配置至此,即可通过maven命令mvn clean deploy
将当前版本构建部署到远程仓库。
4.版本控制和项目版本管理
4.1 配置SCM
<scm>
<connection>scm:svn:svn://host/svn/myapp/trunk/</connection>
<developerConnection>scm:svn:svn://host/svn/myapp/trunk/</developerConnection>
</scm>
4.2 配置分发仓库,通过插件maven-release-plugin
配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
<configuration>
<!--项目svn的tags目录-->
<tagBase>svn://host/java/repo/myapp/tags/</tagBase>
</configuration>
</plugin>
4.3 发布稳定版本tag到svn
在发布稳定版本之前需要把所有代码提交到trunk;
执行mvn release:prepare
,将会询问将1.0-SNAPSHOT
版本发布为什么版本,默认1.0
,之后会询问要发布到svn的tag标签名是什么,默认myapp-1.0
,之后会询问主干上新的版本是什么,默认1.1-SNAPSHOT
。
命令执行成功后,项目svn下tags目录中发布了一个名为myapp-1.0
的版本,同时主干版本为1.1-SNAPSHOT
。
4.4 分发稳定版本到远程仓库
在上一步执行完以后,执行mvn release:perform
,maven-release-plugin
会自动签出刚才打的tag,然后打包,分发到远程Maven仓库中。