Maven精選系列--私庫搭建及使用
為什麼要使用私庫
maven預設去遠端中央倉庫下載JAR包的,訪問國外網路相當慢,如果團隊每個人都去下載一遍無疑是網路的浪費,當然也可以新增國內的映象,如阿里的比較穩定,但如果想新增遠端不存在的像第三方公司的JAR包就比較麻煩。
所以,使用私庫,第一,開源包只要有一個人下載過其他人就不需要再下載了,直接從私庫下載即可。第二,可以用來管理第三方公司的或者遠端倉庫不存在的JAR包,或者公司不開源的JAR包。
推薦國內穩定的映象,如阿里的
http://maven.aliyun.com/nexus/content/groups/public/
nexus下載安裝
首先去sonatype官網下載nexus包,要下載開源免費版的OSS版,即Open Source Software。
https://www.sonatype.com/nexus-repository-oss
下載最新的3.X的版本,這裡以windows為例進行下載。
下載後點擊bin目錄中的啟動檔案即可,預設的埠是8081,訪問路徑是/,也可以去配置檔案中修改,這裡以預設。
啟動後,開啟localhost:8081,nexus預設的使用者名稱是admin/admin123
預設安裝有以下這幾個倉庫,在控制檯也可以修改遠端倉庫的地址,第三方倉庫等。
Maven配置
修改maven主目錄conf/setting.xml配置檔案。
新增nexus認證的使用者名稱和密碼配置資訊。
<servers>
<server>
<id>nexus-releases</id>
<privateKey>admin</privateKey>
<passphrase>admin123</passphrase>
</server>
<server>
<id>nexus-snapshots</id>
<privateKey>admin</privateKey>
<passphrase>admin123</passphrase>
</server>
</servers>
新增mirror映象
<mirrors>
<mirror>
<id>Nexus</id>
<mirrorOf>*</mirrorOf>
<name>Nexus</name>
<url>http://127.0.0.1:8081/repository/maven-public/</url>
</mirror>
</mirrors>
新增私庫
<profiles>
<profile>
<id>Nexus</id>
<repositories>
<repository>
<id>Nexus</id>
<name>Nexus</name>
<url>http://127.0.0.1:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>Nexus</id>
<name>Nexus</name>
<url>http://127.0.0.1:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
啟用私庫
<activeProfiles>
<activeProfile>Nexus</activeProfile>
</activeProfiles>
釋出到私庫
在pom配置檔案中新增
<!-- nexus-releases nexus-snapshots與settings.xml中server下的id對應 -->
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Nexus Releases Repository</name>
<url>http://localhost:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Snapshots Repository</name>
<url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
在專案上使用命令mvn deploy打包就能釋出到私庫。