2010-09-03 64 views
6

當我使用maven構建時,我發現它檢查了只有我的本地構建應該產生的工件的各種外部存儲庫。我怎麼能告訴它,com.myorg組只能在本地存儲庫中找到?基本上我想要做的是m2eclipse在工作區解析上做的事情,但是在命令行上。如何防止maven檢查外部存儲庫?

[INFO] snapshot com.myorg:core:0.0.1-SNAPSHOT: checking for updates from sun-jms 
[INFO] snapshot com.myorg:core:0.0.1-SNAPSHOT: checking for updates from hibernate 
[INFO] snapshot com.myorg:util:0.0.1-SNAPSHOT: checking for updates from sun-jms 
[INFO] snapshot com.myorg:util:0.0.1-SNAPSHOT: checking for updates from hibernate 
... 

背景: 我有一個分層Maven項目(一級)。我想做一個完整的構建,所以我去頂部,並做mvn clean install

  • com.myorg(父)
    • 的pom.xml
    • com.myorg.core
      • 的pom.xml
    • com.myorg.util
      • pom.xml

回答

7

如果您使用的是遠程倉庫是版本庫而實際上並不包含任何快照時,他們可以爲他們禁用快照和Maven不會檢查他們的快照更新。例如:

<repositories> 
    <repository> 
    <id>java.net</id> 
    <url>http://download.java.net/maven/2</url> 
    <snapshots> 
     <enabled>false</enabled> 
    </snapshots> 
    </repository> 
    ... 
</repositories> 
+0

純粹的天才;我會認爲這將是存儲庫將控制的一個屬性,而不是每個用戶。 – Justin 2010-09-07 12:21:11

9

您可以傳遞 「-o」 選項Maven的嘗試。 -o激活「離線模式」,其中Maven不會查詢遠程存儲庫來檢查更新或新的工件。

我不認爲你可以指定這在每個依賴的基礎上。

1

默認情況下,maven首先檢查本地存儲庫中的依賴項,然後檢查外部存儲庫中的依賴項。唯一會使maven檢查外部存儲庫的情況是使用快照。

如果使用快照,則可以使用<updatePolicy>標記更改何時檢查外部存儲庫。

如果你想在脫機模式下工作,你可以使用「-o」選項在你的mvn命令上設置一個臨時脫機選項,或者你可以在你的「〜/ .m2/settings.xml」與<offline>true</offline>


這樣做之前,記得要使用dependecy:go-offline魔力下載一旦你的依賴之前,你真的啓動離線模式。


資源: