Nexus与Maven集成

1. Servers 配置认证信息

在Maven settings.xml中添加Nexus认证信息:

<server>
    <id>nexus-releases</id>
    <username>army</username>
    <password>armyqin</password>
</server>

<server>
    <id>nexus-snapshots</id>
    <username>army</username>
    <password>armyqin</password>
</server>
  • nexus-releases: 用于发布Release版本
  • nexus-snapshots: 用于发布Snapshot版本

Release版本与Snapshot版本的区分:

Release: 4.3.0
Snapshot: 4.3.0-SNAPSHOT
  • 在项目POM.xml中设置的版本号添加SNAPSHOT标识的都会发布为SNAPSHOT版本,没有SNAPSHOT标识的都会发布为Release版本。
  • SNAPSHOT版本会自动加一个时间作为标识,如:4.3.0-SNAPSHOT发布后为变成4.3.0-SNAPSHOT-20160712.114532-1.jar

2. 配置自动化部署构件

在POM.xml中添加以下代码:

<distributionManagement>
    <repository>
        <id>nexus-releases</id>
        <name>Nexus Release Repository</name>
        <url>http://mvn.army16.com/repository/maven-releases/</url>
    </repository>
    <snapshotRepository>
        <id>nexus-snapshots</id>
        <name>Nexus Snapshot Repository</name>
        <url>http://mvn.army16.com/repository/maven-snapshots/</url>
    </snapshotRepository>
</distributionManagement>
注意事项:
  • ID名称必须要与settings.xml中Servers配置的ID名称保持一致。
  • 项目版本号中有SNAPSHOT标识的,会发布到Nexus Snapshots Repository, 否则发布到Nexus Release Repository,并根据ID去匹配授权账号。

3. 部署到Nexus仓库

mvn deploy

4. 上传第三方JAR包

C:\Windows\System32>mvn deploy:deploy-file -DgroupId=com.tts.lib -DartifactId=tts-jlib -Dversion=0.2.3 -Dpackaging=jar -Dfile=C:\Users\phoenix\Downloads\tts-jlib-0.2.3.jar -Durl=http://mvn.army16.com/repository/tts-host/ -DrepositoryId=nexus-releases
注意事项:
  • 建议在上传第三方JAR包时,创建单独的第三方JAR包管理仓库,便于管理有维护。(maven-3rd)
  • -DrepositoryId=nexus-releases 对应的是settings.xml中Servers配置的ID名称。(授权)

5. 使用代理中央仓库

<repositories>
    	<repository>
		        <id>nexus</id>
  		      <name>Nexus Repository</name>
  		      <url>http://mvn.army16.com/repository/tts-host/</url>
  	      	<snapshots>
  	          		<enabled>true</enabled>
  		      </snapshots>
        <releases>
  			          <enabled>true</enabled>
  		      </releases>
    </repository>
</repositories>
<pluginRepositories>
    	<pluginRepository>
  		      <id>nexus</id>
  		      <name>Nexus Plugin Repository</name>
  	      	<url>http://mvn.army16.com/repository/tts-host/</url>
  		      <snapshots>
  			          <enabled>true</enabled>
  		      </snapshots>
  		      <releases>
  			          <enabled>true</enabled>
  		      </releases>
    </pluginRepository>
</pluginRepositories>

注意事项:

  • 在开发中如果有严格的管理要求,可将SNAPSHOT和RELEASE单独配置。
  • 有插件依赖时配置插件仓库,默认会使用Maven中央仓库

 

滚动至顶部