Maven發(fā)布項目 (jar包) 到Nexus私服中的操作
1 需求說明
開發(fā)完項目后, 將項目版本發(fā)布到Nexus私服中.
2 實現(xiàn)步驟
2.1 Maven服務(wù)的setting.xml文件
(1) 如果本機(jī)安裝了Maven服務(wù), 可在${MAVEN_HOME}/conf/setting.xml中指定私服相關(guān)的配置:
<!-- 在servers標(biāo)簽下配置server, 包括: 私服的用戶名和密碼, 在deploy項目時需要用到 -->
<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
<!-- 在profiles標(biāo)簽下配置profile, 包括: 私服所配的倉庫、各個插件的倉庫地址 -->
<profile>
<!-- profile的id -->
<id>dev</id>
<repositories>
<repository>
<!-- 倉庫id, Repositories可以配置多個倉庫, 要確保id不重復(fù) -->
<id>nexus</id>
<!-- 倉庫地址, 即nexus倉庫組的地址 -->
<url>http://ip:port/nexus/content/groups/public/</url>
<!-- 是否下載Releases構(gòu)件 -->
<releases>
<enabled>true</enabled>
</releases>
<!-- 是否下載Snapshots構(gòu)件 -->
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<!-- 插件倉庫, Maven的運行依賴插件, 也需要從私服下載插件 -->
<pluginRepository>
<!-- 插件倉庫的id不允許重復(fù), 如果重復(fù), 后配置的優(yōu)先 -->
<id>public</id>
<name>Public Repositories</name>
<url>http://ip:port/nexus/content/groups/public/</url>
</pluginRepository>
</pluginRepositories>
</profile>
<!-- 還需指定聯(lián)網(wǎng)倉庫, 保證本私服中沒有相關(guān)jar包或插件時可聯(lián)網(wǎng)獲取 -->
<profile>
<id>internet</id>
<repositories>
<repository>
<id>nexus-aliyun</id>
<name>Nexus aliyun</name>
<layout>default</layout>
<!-- 這里配置阿里云的倉庫 -->
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
</profile>
(2) 如果本機(jī)沒有安裝Maven服務(wù), 可在IDEA或Eclipse等開發(fā)環(huán)境默認(rèn)使用的Maven配置中修改, 修改內(nèi)容同上.
2.2 項目的pom.xml文件
在項目的pom.xml中的一級標(biāo)簽project下添加如下內(nèi)容:
<!-- 發(fā)布選項: id必須與setting.xml文件中server的id相同 -->
<distributionManagement>
<repository>
<id>releases</id>
<name>display</name>
<url>http://ip:port/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>display</name>
<url>http://ip:port/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
2.3 發(fā)布項目
以IDEA為例, 選中項目, 右鍵 -> Run Maven -> deploy,
或者在右邊欄選中Maven欄目, 點擊項目 -> Lifecycle -> deploy, 執(zhí)行即可將項目發(fā)布到倉庫中去.
注意:倉庫中不能存在與當(dāng)前項目名稱+版本號相同的項目, 否則將導(dǎo)致出錯: Bad Request: 400.
補充知識:maven上傳jar包到nexus私服后的存放路徑 以及 使用IDEA上傳jar包的步驟
maven上傳jar包到nexus私服的方法,網(wǎng)上大神詳解很多,那么上傳后的jar包存放到哪里了呢?
在下使用nexus3.2.1版本,在本地搭建了私服,使用maven上傳jar包。最后結(jié)果如下:

點進(jìn)去后展示的是:

這讓我一度以為是以jar包的形式保存在本地,但事實證明,保存在本地的最終是一個 .bytes 類型的文件,它的默認(rèn)路徑在\nexus-3.2.1-01-win64\sonatype-work\nexus3\blobs\default\content下面

即使jar包是同樣的,但是deploy了兩次,那么就會展示兩次

nexus設(shè)置自定義路徑時,要設(shè)置Blob Stores,默認(rèn)只有default一個,新建一個路徑的話就可以自己指定了

簡單說下在搭建好nexus私服以后,將jar包上傳到私服的步驟
場景:使用IDEA,maven項目打jar包后上傳
在pom.xml文件中配置
<distributionManagement>
<repository>
<id>nexus</id>
<name>maven-releases</name>
<url>http://localhost:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>nexus</id>
<name>maven-snapshots</name>
<url>http://localhost:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
<id>標(biāo)簽對應(yīng)著 maven的配置文件setting.xml中<server>的設(shè)置,如下:
<servers> <server> <id>nexus</id> <username>admin</username> <password>admin123</password> </server> </servers>
最后使用deploy操作,將打好的jar包上傳到nexus私服上
以上這篇Maven發(fā)布項目 (jar包) 到Nexus私服中的操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
JVM性能調(diào)優(yōu)實戰(zhàn):讓你的IntelliJ Idea縱享絲滑
這篇文章主要介紹了JVM性能調(diào)優(yōu)實戰(zhàn):讓你的IntelliJ Idea縱享絲滑的相關(guān)資料,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01
SpringBoot ThreadLocal實現(xiàn)公共字段自動填充案例講解
每一次在Controller層中封裝改動數(shù)據(jù)的方法時都要重新設(shè)置一些共性字段,顯得十分冗余。為了解決此問題也是在項目中第一次利用到線程,總的來說還是讓我眼前一亮,也開闊了視野,對以后的開發(fā)具有深遠(yuǎn)的意義2022-10-10
基于@RequestParam name和value屬性的區(qū)別
這篇文章主要介紹了@RequestParam name和value屬性的區(qū)別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
SpringBoot集成Quartz實現(xiàn)持久化定時接口調(diào)用任務(wù)
Quartz是功能強大的開源作業(yè)調(diào)度庫,幾乎可以集成到任何?Java?應(yīng)用程序中,從最小的獨立應(yīng)用程序到最大的電子商務(wù)系統(tǒng),本文將通過代碼示例給大家介紹SpringBoot集成Quartz實現(xiàn)持久化定時接口調(diào)用任務(wù),需要的朋友可以參考下2023-07-07

