在我的公司我們使用的是Archiva,它是目前爲止最簡單的Repository Manager設置和維護。特別是如果你使用獨立版本。每位開發人員只需在其~/.m2/settings.xml
文件中設置profile
以指向內部存儲庫。如果這太麻煩了,只需將<repositories/>
中的內部存儲庫直接放入pom.xml
即可,但這是非常糟糕的做法。如果存儲庫網址不斷移動,則必須更新所有項目pom.xml
文件。在使用settings.xml
時,開發人員需要更新其本地配置。
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<profiles>
<profile>
<id>internal</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>mycompany.internal</id>
<name>Internal Release Repository</name>
<url>http://maven.mycompany.com/repository/internal/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>mycompany.snapshots</id>
<name>Internal Snapshot Repository</name>
<url>http://maven.mycompany.com/repository/snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<servers>
<server>
<id>internal</id>
<username>guest</username>
</server>
<server>
<id>snapshots</id>
<username>guest</username>
</server>
</servers>
</settings>
如果建立一個倉庫管理器是太麻煩了,我想你需要手動添加的東西替代重新用手本地資源庫,這是非常容易出錯且費時。我爲我的個人開發運行Archiva實例,僅僅因爲它很容易添加release
插件並管理版本,而不必記住在每臺計算機上向本地存儲庫添加內容所需的所有神祕的-D
選項。複製~/.m2/settings.xml
文件是非常容易的,如果它在一臺機器上運行,它可以在所有機器上運行。
以下是添加到您的pom.xml
以啓用自動執行發佈並將工件推送到存儲庫的示例,在我的示例中爲Archiva。
<distributionManagement>
<repository>
<id>internal</id>
<name>Internal Archiva Repository</name>
<url>http://maven.mycompany.com/repository/internal/</url>
<layout>default</layout>
<uniqueVersion>false</uniqueVersion>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Internal Archiva Repository</name>
<url>http://maven.mycompany.com/repository/snapshots/</url>
<layout>default</layout>
<uniqueVersion>false</uniqueVersion>
</snapshotRepository>
</distributionManagement>
然後你要做的就是mvn clean release:prepare
自動更新您的pom.xml
版本支票,標籤和可選分支釋放,包中的所有文物,然後mvn release:perform
的假象推送到遠程的存儲庫並檢入新版本的pom.xml
,並且您已準備好開始下一個版本的開發。
快照得snaphots
併發布到internal
在發佈插件自動運行。你必須配置SCM插頭爲好,但就是配置的短短的幾行,你只需要輕觸一下,以及。
這是它看起來像git的,我們使用Gitorious作爲我們的Git倉庫經理
<scm>
<connection>scm:git:git://gitorious.mycompany.com:myproject/myproject.git</connection>
<developerConnection>scm:git:ssh://[email protected]/myproject/myproject.git</developerConnection>
<url>http://gitorious.mycompany.com/myproject/myproject</url>
</scm>
運行Linux可以處理存儲庫的職責是這樣一個開發團隊,而無需涉及採購的舊臺式電腦和IT。
設置Nexus是很容易的。我有一個實例在家裏爲自己運行。 – ColinD 2011-03-14 16:07:46
用nexus創建一個本地倉庫太過於矯枉過正?你可以用它代理所有的maven回購站並保留這些第三方的罐子。 – Augusto 2011-03-14 16:09:15
當然,我可以安裝Nexus。但之後我不得不要求每個接觸這個項目的人都這樣做。或者將其設置在服務器上,備份它,擔心安全性等。它似乎是處理一些定製jar文件的非常麻煩的解決方案。 – 2011-03-14 17:09:58