2012-03-06 74 views
0

當離線模式下運行Maven時,我需要使Maven訪問本地存儲庫(file://)(基本上,我試圖設置存儲庫層次結構,因此它不會將工件放在不存在的位置,噸需要他們)。以離線模式訪問本地存儲庫

這並不是開箱即用的,儘管我總是認爲這種情況是受支持的。是否有一些標誌在離線模式下啓用特定的存儲庫?

回答

1

有可能到set up profiles for repositories utilizing the local file system而不是網絡地址。

<repository> 
    <id>mymaven</id> 
    <url>file://D:\mylocalrepo</url> 
</repository> 

根據文件,也有可能reference offline mode in a property value

${settings.offline} 

你會再根據實例here一起利用這些來activate a given settings profile。 (如果Maven的不檢測的性質,嘗試直接使用上述語法評估。)

<profiles> 
    <profile> 
     <id>myNeededProfile</id> 
     <activation> 
     <activeByDefault>false</activeByDefault> 
     ... 
     <property> 
      <name>offline</name> 
      <value>true</value> 
     </property> 
     ... 
     </activation> 
     ... 
    </profile> 
    </profiles> 

我相信Maven Help Plugin可以引導通過計算這方面的發展,其個人資料將在一定條件下的活性。

我也認爲這可以通過每次請求離線模式時從命令行顯式調用配置文件來實現。

mvn groupId:artifactId:goal -o -P profile-1,profile-2 

或者,甚至更簡單地說,有兩個單獨的設置文件並專門用於離線/在線操作。你可以在你用來檢測脫機請求的任何操作系統環境中編寫一個命令行包裝器,然後在執行Maven命令之前移動和重命名這些文件,然後在完成時移回它們。

+0

不,這不是我想要的。我需要一種方式來在離線模式下運行Maven(我需要它強制Tycho插件更喜歡本地P2回購)並且仍然具有回購層次(因此某些回購是r/o) – Eugene 2012-03-06 21:48:20

1

Maven總是試圖連接到中央存儲庫。您可以定義自己的中心(這是唯一的財產,你可以重新定義)

使快照一樣,插件庫等配置,可以作爲配置文件中使用 - 這將是可選的。請參閱ingyhere的答案。

+0

我的問題是,當Maven離線時,第谷將忽略我的本地P2存儲庫,並將開始從網絡獲取工件。因此,即使我重寫中央,我也無法使用在線模式。 – Eugene 2012-03-06 21:47:16

+0

您是否嘗試過重新定義父項目POM和Maven主設置中的存儲庫引用?另外,請在原始問題中參考更多細節。這是項目問題,由於某些原因Maven設置被覆蓋,或者項目設計不適應離線模式。需要接近具體的解決方案而不是普通解決方案。 – ingyhere 2012-03-07 00:02:24

1

對於開發環境而已,如果你使用IntelliJ IDEA的,你可以配置Maven來如下脫機工作:

Preferences... > Search for Maven > Work offline (checked)