了解有限,目前只針對基礎功能介紹,持續更新
一、下載對應的版本(本例版本:nexus-3.7.1-02)
https://www.sonatype.com/download-oss-sonatype
二、啟動服務,進入對應安裝目錄,按住shift右鍵,打開cmd命令行,執行nexus.exe /run
我的Nexus目錄:NEXUS_HOME\nexus-3.7.1-02-win64\nexus-3.7.1-02\bin
最后啟動成功提示如下,即可訪問http://192.168.1.168:8081/登錄,帳號admin 密碼admin123
三、頁面介紹
1.倉庫頁面
點擊導航Browse,這里是所有已經配置的倉庫
Name:
maven-central:maven中央庫,默認從https://repo1.maven.org/maven2/拉取JAR包,這個遠端地址可改,也可新建另外一個
maven-releases:私庫發行版JAR
maven-snapshots:私庫調試版本JAR
maven-public:倉庫分組,把上面三個倉庫組合在一起對外提供服務
Type:
proxy:代理遠端倉庫
hosted:本地Jar包
group:倉庫組
2.搜索功能
便於快速查找jar包,導航中選擇Search,可選擇多種類型的查找方式,比如按名稱、按版本、按倉庫組等,此功能是模糊查找
3.創建修改倉庫&倉庫組
點擊上方齒輪圖標,即可打開配置管理頁面,其中Repository欄為倉庫管理,下面只針對這里的Blob Stores、Repositories說明
Blob Stores:jar包存放路徑,默認存放在NEXUS_HOME/sonatype-work\nexus3\blobs\default下,可創建多個
Repositories:
創建代理倉庫Proxy
①選擇Create repository創建倉庫
②選擇倉庫類型maven2(proxy)
③設置倉庫名稱
④設置倉庫版本,代理倉庫通常設置為releases
⑤配置下載存放路徑,默認是Blob Stores的default
⑥配置代理倉庫地址,我是用阿里的
以上完成后保存創建即可完成代理倉庫的創建
創建本地倉庫(第三方、代理倉庫中沒有的jar都放這里)hosted,重復上面的流程,不同處如下
②選擇倉庫類型maven2(hosted)
④設置倉庫版本,releases或snapshots,兩者區別如下:
有一個自己封裝的jar包,該jar包處於開發版,近期會不停的更新,版本為1.0,使用snapshots倉庫,今后jar包更新后,只需將新的包傳入到該倉庫,
項目中會自動下載更新到這個包,無需修改版本號;用releases這個倉庫,每次變更jar包必須升級版本號,對應項目pom文件中要修改,否則新的jar包不會被下載
⑥此步改為,目的是可以上傳部署jar
創建倉庫組group,重復上面的流程,不同處如下
②選擇倉庫類型maven2(group)
④設置將哪些倉庫歸類到一個組里
到現在為止,Nexus倉庫部分操作完成
四、使用倉庫
1.配置Maven settings.xml
配置中URL自行修改
<mirrors> <mirror> <id>content</id> <mirrorOf>*</mirrorOf> <name>maven-public</name> <url>http://192.168.1.168:8081/repository/maven-public/</url> </mirror> </mirrors>
<servers> <server> <id>nexus</id> <!--這個id用於上傳jar包--> <username>admin</username> <password>admin123</password> </server> </servers>
2.在項目pom.xml中配置如下,目的:snapshots模式時,更新策略設置,非snapshots模式不用配置
<distributionManagement> <snapshotRepository> <id>nexus</id> <url>http://192.168.1.168:8081/repository/maven-public/</url> </snapshotRepository> <repository> <id>nexus</id> <url>http://192.168.1.168:8081/repository/maven-public/</url> </repository> </distributionManagement> <repositories> <repository> <id>maven-public</id> <url>http://192.168.1.168:8081/repository/maven-public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>daily</updatePolicy> <!--該元素指定更新發生的頻率。Maven會比較本地POM和遠程POM的時間戳。這里的選項是:always(一直),daily(默認,每日),interval:X(這里X是以分鍾為單位的時間間隔),或者never(從不)。 --> </snapshots> </repository> </repositories>
3.項目中pom引用jar
引用快照版,他會去私服中倉庫類型為SNAPSHOT里去找jar,注意版本后面一定要加-SNAPSHOT,發布版直接寫<version>1.27</version>;
發布快照版jar后,需本地執行Maven test或者Maven install等操作才會更新jar
<dependency> <groupId>org2.kaola</groupId> <artifactId>fastdfs</artifactId> <version>1.27-SNAPSHOT</version> </dependency>
五、Jar包發布
使用方式:直接cmd中輸入如下命令
1.發布releases版
mvn deploy:deploy-file -DgroupId=org.kaola -DartifactId=fastdfs -Dversion=1.25 -Dpackaging=jar -Dfile=D:\fastdfs.jar -Durl=http://192.168.1.168:8081/repository/maven-releases/ -DrepositoryId=nexus
2.發布snapshots版
mvn deploy:deploy-file -DgroupId=org2.kaola -DartifactId=fastdfs -Dversion=1.27-SNAPSHOT -Dpackaging=jar -Dfile=D:\fastdfs-SNAPSHOT.jar -Durl=http://192.168.1.168:8081/repository/maven-snapshots/ -DrepositoryId=nexus
需要自定義內容:
DgroupId:包分組,例如org.kaola,pom文件中<groupId>org.kaola</groupId>配置
DartifactId:文件名,pom文件中<artifactId>fastdfs</artifactId>配置
Dversion:版本,pom文件中<version>1.27-SNAPSHOT</version>配置
Dfile:上傳文件本地路徑
Durl:倉庫路徑,上傳到哪個倉庫
DrepositoryId:上面步驟4-1中配置的id