我需要使用公司本地Maven存儲庫,並且僅限於此。現在,超級POM包含repo1.maven.org/maven2 - 我想將其關閉。Maven - 如何設置超級POM
現在,http://maven.apache.org/guides/introduction/introduction-to-the-pom.html表示「除非明確設置,否則所有POM都會擴展超級POM」。
我該如何明確設置它?
(Maven的3.0.4)
我需要使用公司本地Maven存儲庫,並且僅限於此。現在,超級POM包含repo1.maven.org/maven2 - 我想將其關閉。Maven - 如何設置超級POM
現在,http://maven.apache.org/guides/introduction/introduction-to-the-pom.html表示「除非明確設置,否則所有POM都會擴展超級POM」。
我該如何明確設置它?
(Maven的3.0.4)
我假設,通過「本地資源庫」你的意思是庫中找到你的公司/辦事處,而不是本地資源庫在$ HOME/.m2目錄/存儲庫。
定義你的倉庫在用戶的settings.xml文件的所有存儲庫的鏡子會做的伎倆:
<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">
<mirrors>
<mirror>
<id>companyrepo</id>
<url>http://localrepo.com/repo</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
</settings>
這樣,每一個項目都會從超級POM但Maven的繼承將無法連接到repo1.maven .ORG
我的理解是,超級POM提供了廣泛使用的功能,所有的Maven的POM,除非該功能是明確項目POM提供(例如有點像Java中的Object類)。因此,爲避免使用公共存儲庫,您可以指定要在您的POM中使用的(本地)存儲庫。但是,更好的方法是在settings.xml文件中指定本地存儲庫 - 這樣可以使用密碼保護本地存儲庫,而無需將用戶名/密碼提交到源代碼存儲庫並手動分享。
你在找什麼是Maven的離線模式。使用控制檯調用Maven時,可以通過-o
或--offline
選項啓用它。如果您真的想要始終啓用它,請將<offline>true</offline>
添加到您的settings.xml
。
如果您不能(由於某種原因)使用脫機模式,最極端的選擇是覆蓋central
id的存儲庫定義。示例:
<repository>
<id>central</id>
<url>file://C:\tmprepo</url>
</repository>
我建議使用基於離線模式的解決方案。它乾淨清晰。
對不起,我的表述誤導了你。正如托馬斯正確地假設的那樣,我打算談論公司本地存儲庫。所以離線模式不適合我。 – Falko 2012-04-17 13:23:08
有趣的是,這回答了我的問題,如果不是我的問題。 (我還是不知道如何設置一個超級POM,但我不需要了:) – Falko 2012-04-17 17:34:31
SuperPOM是Maven的罐子裏面的地方,你需要重新找出給定的罐子,修改POM和jar文件。但在我看來,它根本沒有意義...... – 2012-04-17 17:38:18
這是上述文件的「除非明確設置」,這使我相信設置它是一種方式。我停止了。 – Falko 2012-04-17 18:41:49