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中央仓库