前言
如果項目是以jar
包的形式使用,普通的工具類或者springboot
的可執行包,都需要上傳到遠程倉庫保存共享。
使用Maven上傳
Maven
中提供了<distributionManagement>
標籤,可以非常方便上傳.
一個簡單的示例:
<distributionManagement>
<snapshotRepository>
<id>swb</id>
<url>http://repo.cnswb.com/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
這裏配置了一個snapshotRepository
,就是開發中使用最多的快照倉庫.
使用mvn deploy
命令即可實現快照版上傳.
注
這裏的上傳可能會受到限制,比如遠程倉庫設置了不允許匿名操作,那可能就會出現權限錯誤,此時需要在全局設置中配置server
用戶名密碼信息,它們通過id
一一對應.這裏id
是swb
,那麼在需要登錄信息時,就會在servers
中找到對應的id
爲swb
的server
信息(包含用戶名密碼)來鑑權.
distributionManagement
倉庫配置
除了snapshotRepository
,還有個repository
與之對應,也就是發佈版.
它和snapshotRepository
的子標籤完全一樣.
上例中只是展示了關鍵標籤,其完整信息是:
<snapshotRepository>
<id>swb-snapshot</id>
<name>swb-snapshot</name>
<layout>default</layout>
<uniqueVersion>true</uniqueVersion>
<url>http://repo.cnswb.com/repository/maven-snapshots/</url>
</snapshotRepository>
規則
如果只配置了一個倉庫,那麼此工程的版本號命名必須遵循:
- 如果是
snapshotRepository
,版本號必須是以-SNAPSHOT
結尾 - 如果是
repository
,版本號必須不是以-SNAPSHOT
結尾
如果兩種倉庫都配置了,那麼會根據版本號選擇合適的倉庫上傳.這是最爲合乎情理的方式.
其他配置
relocation
不常用,因爲很多人根本不會去看這個.
這是一個純展示的標籤,不會對本工程的deploy
造成影響,只是用來告訴開發者本工程座標的調整信息:
<relocation>
<groupId>org.example</groupId>
<artifactId>hello_maven</artifactId>
<version>1.1-SNAPSHOT</version>
<message>原hello_maven已廢棄,請使用</message>
</relocation>
downloadUrl
項目下載頁面的網址。 如果未提供,則會將用戶轉到
url
提供的主頁。 這樣做是爲了幫助查找由於許可限制而不在存儲庫中的工件。
<downloadUrl>http://${another_repository_host}</downloadUrl>
site
部署項目網站所需的信息。
<site>
<id>${id}</id>
<name>${name}</name>
<url>http://${host}</url>
</site>
status
不要人爲在本地配置!!!上傳時MAVEN自動接管,雖然看不見效果在哪
表示在遠程存儲庫中提供此工件的狀態,它會通過將其防止在存儲庫中的工具進行更新,因此不要在本地配置.
它是一個枚舉項:
- none: 默認
- converted: 存儲庫從
Maven 1 POM
轉換此值- partner: 從合作伙伴Maven 2存儲庫直接同步
- deployed: 已從Maven 2實例部署
- verified: 已手工處理,驗證爲正確且最終的