Maven公服 http://maven.aliyun.com
1. https://hub.docker.com 搜索nexus
2. docker pull sonatype/nexus3
3. 創建Docker目錄,創建nexus目錄
cd /usr/local/ mkdir docker cd docker/ mkdir nexus cd nexus/ vi docker-compose.yml
4. 使用Docker來安裝和運行Nexus,docker-compose.yml配置如下:
version:'3.1' services: nexus: restart:always image:sonatype/nexus3 container_name:nexus ports: -8081:8081 volumes: - /usr/local/docker/nexus/data:/nexus-data
5. docker-compose up -d
6. 訪問http://ip:8081
7. 看日志
docker ps
docker logs containerID
8. 如果報錯沒權限 查看data中是否有數據,讓data有所有權限
cd /data/ ll docker-compose down chmod 777 data/
9. docker-compose -up -d
10. 啟動nexus耗內存,看內存狀態,nexus的啟動需要耗費近1G內存;
free -h
htop
11. 登陸nexus,默認用戶名`admin`密碼`admin123`
12. 在Maven setting.xml中添加Nexus認證信息(servers節點下)
<server> <id>nexus-releases</id> <username>admin</username> <password>admin123</password> </server> <server> <id>nexus-snapshots</id> <username>admin</username> <password>admin123</password> </server>
13. 把項目和私服關聯起來,在pom.xml添加配置
<distributionManagement> <repository> <id>nexus-releases</id> <name>Nexus Release Repository</name> <url>http://192.168.0.148:8081/repository/maven-releases/</url> </repository> <snapshotRepository> <repository> <id>nexus-snapshots</id> <name>Nexus Snapshot Repository</name> <url>http://192.168.0.148:8081/repository/maven-snapshots/</url> </repository> </snapshotRepository> </distributionManagement>
注:ID與setting.xml中Servers配置的一致
url地址與私服倉庫地址一致
14. mvn deploy -Dmaven.test.skip=true
15. 項目需要依賴先去本地找,本地沒有去私服(內網)找,私服沒有去官服找;
第三方依賴或者自己寫的jar,可以手動上傳到私服,3.13版本nexus支持上傳功能
16. 配置代理倉庫,目的是使項目走私服下載依賴到本地倉庫
<repositories> <repository> <id>nexus</id> <name>Nexus Repository</name> <url>http://192.168.0.148:8081/repository/maven-public/</url> <snapshots> <enabled>true</enabled> </snapshots> <releases> <enabled>true</enabled> </releases> </repository> <repositories> <pluginRepositories> <pluginRepository> <id>nexus</id> <name>Nexus Repository</name> <url>http://192.168.0.148:8081/repository/maven-public/</url> <snapshots> <enabled>true</enabled> </snapshots> <releases> <enabled>true</enabled> </releases> </pluginRepository> </pluginRepositories>
17. 到這里項目就可以從私服到本地倉庫了
1、SNAPSHOT版本代表不穩定(快照版本),還在處於開發階段,隨時都會有變化。當上傳同樣的版本號jar包的時候,SNAPSHOT會在版本號的后面自動追加一串新的數字,即日志標簽;
2、RELEASE則代表穩定的版本(發布版本),一般上線后都會改用RELEASE版本。
在maven的依賴管理機制中,唯一標識一個依賴項是由該依賴項的三個屬性構成的,分別是groupId、artifactId以及Version。這三個屬性唯一確定一個組件(即我們平時說的war包和jar包)。
3. 倉庫中public是集合了快照版和發行版的映射