搭建私服的優點:
(1) 降低中央倉庫負荷
(2) 節省外網帶寬
(3) 加速Maven構建
(4) 自己部署構件
1. Nexus安裝
(1) 下載:http://www.sonatype.org/nexus/,下載包:nexus-2.0.2.war
(2) 安裝
A. WAR方式安裝Nexus
將nexus-2.0.2.war拷貝至Tomcat的部署目錄:C:\Apache-tomcat-7.0.26\webapps下,
啓動Tomcat, 進入Tomcat管理首頁即可;
瀏覽器訪問地址:http://localhost:8080/nexus
B. Bundle方式安裝Nexus
因爲Bundle方式的Nexus默認集成了Jetty容器,因此不需要其他第三方Web容器,解壓下載的Bundle
方式的Nexus文件,有下面的兩個目錄:
nexus-webapp-2.0.2:包含Nexus所需要的文件,如啓動腳本,依賴JAR等。
sonatype-work:包含Nexus生成的配置文件、日誌文件、倉庫文件。
WinOS下,進入nexus-webapp-2.0.2/bin/jsw/windows-x86-32運行nexus.bat腳本啓動服務。
瀏覽器訪問地址:http://localhost:8081/nexus
備註:
更改訪問端口:修改nexus-webapp-2.0.2/conf/plexus.properties
(3) 登錄
Nexus默認的管理員及密碼:admin/admin123
2. Nexus的倉庫與倉庫組
Nexus有四種倉庫類型:group,hosted,proxy,virtual,倉庫格式爲:maven2或maven1,倉庫屬性Policy
爲:Release或Snapshot.
3. 配置Maven從Nexus下載構件
(1) 在POM中配置Nexus倉庫
<project>
...
<repositories>
<repository>
<id>nexus</id>
<name>Nexus</name>
<url>http://localhost:8081/nexus/content/groups/public/<url>
<release><enabled>true</enabled></release>
<snapshots><enabled>true></enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>Nexus</name>
<url>http://localhost:8081/nexus/content/groups/public/<url>
<release><enabled>true</enabled></release>
<snapshots><enabled>true></enabled></snapshots>
</pluginRepository>
</pluginRepositories>
...
</project>
上述配置只對當前項目有效,若需讓本機所有Maven項目均使用Mavne私服,應該在setting.xml中進行配置。
(2) 在setting.xml中配置Nexus倉庫
<settings>
...
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>nexus</id>
<name>Nexus</name>
<url>http://localhost:8081/nexus/content/groups/public/<url>
<release><enabled>true</enabled></release>
<snapshots><enabled>true></enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>Nexus</name>
<url>http://localhost:8081/nexus/content/groups/public/<url>
<release><enabled>true</enabled></release>
<snapshots><enabled>true></enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfiles>
</activaProfiles>
...
</settings>
(3) 配置鏡像讓Maven只使用私服
<settings>
...
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>*<?mirrorOf>
<url>http://localhost:8081/nexus/content/groups/public/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>central</id>
<name>http://central</name>
<release><enabled>true</enabled></release>
<snapshots><enabled>true></enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<name>http://central</name>
<release><enabled>true</enabled></release>
<snapshots><enabled>true></enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfiles>
</activaProfiles>
...
</settings>
說明:該配置中倉庫及插件倉庫的id均爲central,即覆蓋了超級POM中央倉庫的配置,他們的ULR可以不做
配置,因爲所有請求都會通過鏡像訪問私服地址。
4. 部署構件至Nexus
(1) 使用Maven部署構件至Nexus
<project>
...
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Nexus Releasse Repository</name>
<url>http://localhost:8081/nexus/content/repositories/release</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Snapshots Repository</name>
<url>http://localhost:8081/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
...
</project>
Nexus的倉庫對於匿名用戶時只讀的,爲了方便部署,需要在setting.xml配置認證信息:
<settings>
...
<servers>
<server>
<id>nexus-releases></id>
<username>admin</username>
<password>*****</password>
</server>
<server>
<id>nexus-snapshots></id>
<username>admin</username>
<password>*****</password>
</server>
</servers>
...
</settings>
(2) 手動部署第三方構件至Nexus
選擇宿主倉庫如:3rd Party,在Artifact Upload中上傳。
5. 其他私服軟件
Apache的Archive和JForg的Artifactory.
轉自:http://springsfeng.iteye.com/blog/1456856