我有幾個關於maven最佳實踐和管理資源庫的問題。Maven最佳實踐
在我的環境中,我不想出去到中央maven存儲庫,而是將所有內容存儲在內部存儲庫中。我是否應該要求每個用戶都將信息放在settings.xml文件中,該文件禁止使用來自Maven存儲庫的快照或發行版,或者應該將其放在POM文件中?
此外,我想讓用戶都去同一個公司資源庫。這個存儲庫信息應該放在pom還是放在settings.xml中?如果它在pom中,maven將如何知道該存儲庫,因爲它需要知道存儲庫在哪裏獲取pom?
我有幾個關於maven最佳實踐和管理資源庫的問題。Maven最佳實踐
在我的環境中,我不想出去到中央maven存儲庫,而是將所有內容存儲在內部存儲庫中。我是否應該要求每個用戶都將信息放在settings.xml文件中,該文件禁止使用來自Maven存儲庫的快照或發行版,或者應該將其放在POM文件中?
此外,我想讓用戶都去同一個公司資源庫。這個存儲庫信息應該放在pom還是放在settings.xml中?如果它在pom中,maven將如何知道該存儲庫,因爲它需要知道存儲庫在哪裏獲取pom?
在一個大型項目中,最好有多個存儲庫。
公司代理/緩存將本地存儲donwloaded jars,以便公司不會依賴於外部網站的可用性。它像普通的存儲庫那樣被訪問,但是它是公共存儲庫的入口。
已發佈庫的公司存儲庫是受限制的,它包含內部庫。這些框架是從項目存儲庫「升級」到公司存儲庫的,因爲它們可以用於所有項目。
項目存儲庫包含項目使用的工件。它可以包含子項目工件等。項目中的每個開發人員都應該能夠在此處發佈一些內容。
你把設置放在哪裏就是一個口味問題。我把這些東西放在settings.xml中。因爲如果內部存儲庫的地址發生變化,您將不得不修改項目。
第一步:在局域網內的服務器上安裝nexus。它非常出色 - 易於安裝(實際上,只需幾分鐘!)和堅實。我們有大約50名工程師和許多CI服務器,整天都在喋喋不休,並且已經穩定了好幾個月。假設您將其安裝在您的DNS中名爲「nexus.local」的服務器上。
第二步:settings.xml中從http://www.sonatype.com/books/nexus-book/reference/maven-sect-single-group.html複製,必要時修復主機,它提交到源代碼系統,並告訴你所有的開發人員將其複製到自己的〜/ .m2目錄/ settings.xml中。
第三步:正確設置項目的pom.xml。你會想,它定義了「distributionManagement」部分,看起來像這樣的「父POM」:
<distributionManagement>
<snapshotRepository>
<id>nexusSS</id>
<name>Nexus Snapshot Repository</name>
<url>http://nexus.local:8081/nexus/content/repositories/snapshots</url>
</snapshotRepository>
<repository>
<id>nexusRelease</id>
<name>Nexus Release Repository</name>
<url>http://nexus.local:8081/nexus/content/repositories/releases</url>
</repository>
</distributionManagement>
第四步:啓用「MVN部署」 - 去你的Nexus UI(類似http://nexus.local:8081/nexus ),點擊用戶,點擊「部署」,並給它一個密碼。然後編輯您〜/ .m2目錄/ settings.xml中並補充一點:
<settings>
...
<servers>
<server>
<id>nexus</id>
<username>deployment</username>
<password>PASSWORD</password>
</server>
</servers>
</settings>
檢查它的工作方式運行「命令mvn部署」,你應該已經安裝了你的項目的構件爲紐帶。
第五步:閱讀行家這個優秀的文檔:http://www.sonatype.com/products/maven/documentation/book-defguide
這是正確的 - 我建議尋找到關係(http://nexus.sonatype.org/)一個很好的解決了所有以上。 – 2009-06-15 10:10:10
謝謝。我一直在使用Apache的Archiva,但我也會研究Nexus。我們現在正在進行一個非常小的項目,只是試圖在早期實現這些目標。 – 2009-06-16 18:25:20