原文:http://m.blog.csdn.net/article/details?id=49667971html
當咱們的項目開發完成之後,可能要進行發佈(若是是獨立的項目,就不須要發佈啦,若是是模塊項目,那麼就要發佈到nexus裏,供其餘開發人員下載調用。)maven
要想發佈項目到nexus裏,必須經過<distributionManagement>標籤來進行配置。在以前的文章中有介紹nexus的工廠類別,其中提到兩個:hosted裏的Releases、Snapshots.ui
當咱們發佈項目到nexus裏時,若是項目版本是x.x.x-Releases,則會發布到Releases工廠中;而項目版本是x.x.x-SNAPSHOTS則發佈到Snapshots工廠中。url
配置<distributionManagement>:.net
代碼:code
<distributionManagement> <repository> <id>releasesId</id> <name>Releases name</name> <url>http://localhost:8081/nexus/content/repositories/releases/</url> </repository> <snapshotRepository> <id>snapshots id</id> <name>snapshots name</name> <url>http://localhost:8081/nexus/content/repositories/snapshots/</url> </snapshotRepository> </distributionManagement>
右鍵項目 --> run as ---> maven Build... --> 輸入clean deploy命令(一開始會下載一些依賴包,淡定.....)。server
後面咱們會看到以下的提示信息:xml
怎麼來設置受權呢?htm
【1】:去到nexus管理界面 --- > 左側菜單欄「Security」 --> 「Users」 ,右側所列出的用戶中,只有deployment用戶纔有發佈項目到nexus的權限。blog
【2】:在setting.xml裏使用<server>標籤進行受權。server裏的id對應<distributionManagement>裏設置的id。
流程是:當執行clean deploy命令進行發佈時,首先會找到<distributionManagement>的配置,獲取配置信息。
而後若是setting.xml裏有配置server,對比id值,若是匹配的上,就驗證server裏的用戶是否擁有發佈的權限,有權限就把項目發佈到對應的倉庫裏。
setting.xml中server標籤代碼:
<server> <id>releasesId</id> <username>deployment</username> <password>deployment123</password> </server> <server> <id>snapshotsid</id> <username>deployment</username> <password>deployment123</password> </server>
至此,發佈的配置就完成了,執行clean deploy命令後,就會在nexus的Releases或Snapshots倉庫中找到發佈的項目了。
若是咱們不想把全部項目都發布到nexus的Releases或Snapshots倉庫中,而是想在nexus裏能爲每一個項目開闢一個空間,存放每一個項目本身發佈上去的依賴包。
要實現這種效果,須要如下幾步操做:
(1)在nexus裏爲每一個項目建立hosted類型的工廠(Releases或Snapshots兩種)
(2)在Securiy --> Privileges裏添加Releases或Snapshots兩種工廠的特權(能夠執行那些操做,如往工廠裏發佈,查看,刪除等特權)
(3)在Security --> Roles 裏添加角色,爲角色配置權限
(4)在Security --> Users 裏添加用戶,爲用戶設定角色
(5)在pom.xml裏的 <distributionManagement>把url改成對應的工廠路徑,在setting裏的server裏設定對應的用戶密碼
執行clean deploy命令後: