使用原因
- 將第三方j(luò)ar包(或其它類型的包)發(fā)布到私倉上,以便通過maven(或其它包管理工具)進(jìn)行統(tǒng)一的依賴管理
- 提高下載速度(你知道國內(nèi)通過maven官方倉庫更新依賴是很慢的)
- 。。。。。。
環(huán)境支持
JDK
Maven
安裝
下載地址:https://www.sonatype.com/download-oss-sonatype
提供了Nexus Repository Manager OSS 3.x
和Nexus Repository Manager OSS 2.x
兩個(gè)版本
這里我們采用3.x
的版本,且以windows
為例:
下載得到
mark
將其解壓到任一目錄
在終端中執(zhí)行:
{NEXUS_HOME}\nexus-3.6.2-01\bin\nexus.exe /run
mark
PS:端口在{NEXUS_HOME}\sonatype-work\nexus3\etc\nexus.properties
文件中可修改
通過瀏覽器,訪問localhost:8081
即可進(jìn)入nexus的管理頁面
配置與說明
登錄默認(rèn)管理員賬號(hào):admin/admin123
mark
創(chuàng)建一個(gè)倉庫(Create Repositories)
mark
按照里面提示,一步步操作就好,值得注意的地方主要是hosted類型的倉庫記得修改如下:
mark
Maven配置
1.找到{MAVEN_HOME}\conf\settings.xml
2.在Servers節(jié)點(diǎn)下添加(可以根據(jù)角色配置多個(gè)):
<server>
<id>nexus</id>
<username>admin</username>
<password>admin123</password>
</server>
2.在Mirrors節(jié)點(diǎn)下添加:
<mirror>
<id>nexus</id>
<name>{name}</name>
<url>http://{host}:{port}/repository/maven-public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
使用與發(fā)布
拉取jar包
- 如果私倉允許匿名用戶拉取jar, 則在maven配置文件中配置好了
mirror
即可 - 如果私倉需要權(quán)限認(rèn)證, 那么需要在pom文件的<project>下添加子節(jié)點(diǎn)<repositories>:
<repositories>
<repository>
<id>cz2rRepo</id>
<name>cz2r Repository</name>
<url>http://www.cz2r.com:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</releases>
</repository>
</repositories>
發(fā)布maven項(xiàng)目
- 在pom文件中的project節(jié)點(diǎn)中的最后添加:
<distributionManagement>
<repository>
<id>{server ID}</id> <!--setting.xml中server的id-->
<name>{repository name}</name> <!--Nexus中repository的名字-->
<url>{repository URL}</url> <!--Nexus中repository的URL-->
</repository>
</distributionManagement>
- 執(zhí)行Maven命令:
mvn deploy -DskipTests
發(fā)布獨(dú)立jar包
mvn deploy:deploy-file -DgroupId={group} -DartifactId={artifact} -Dversion={vsersion} -Dpackaging=jar -Dfile={jar path} -Durl=http://{host}:{port}/repository/{repository name}/ -DrepositoryId={server id}
參數(shù)說明:
group
、artifact
、vsersion
對(duì)應(yīng)Maven中的三個(gè)坐標(biāo)參數(shù)
jar path
為你要發(fā)布的jar的絕對(duì)路徑
host
、port
為你私倉的主機(jī)地址和端口
repository name
為你要發(fā)布到的repository的URL(可在nexus中copy)
server id
對(duì)應(yīng)了在maven中配置的server的ID(如果server所對(duì)應(yīng)的角色權(quán)限不足,則會(huì)發(fā)布失敗)