2014-02-24 71 views
0

我面臨一個獨特的問題 -存在於多個存儲庫中的快照依賴關係

我有一個存在於多個存儲庫中的插件依賴關係。版本號與快照限定符相同(時間戳不同)。

有沒有一種方法可以強制Maven/Tycho選擇來自特定存儲庫的快照?

編輯:它們是Eclipse的PDE創建的構建P2插件庫

+0

作爲依賴項的插件?不是真的 ? – khmarbaise

+0

@khmarbaise:這是maven tycho。它是一個Eclipse插件。它是一個P2存儲庫。編輯原始問題以獲得更多清晰度。 – Pushkar

+0

您可以簡單地忽略冗餘內容的存儲庫嗎? – oberlies

回答

1

您可以在目標平臺上指定一個過濾器,刪除所有,但一個版本:

<plugin> 
    <groupId>org.eclipse.tycho</groupId> 
    <artifactId>target-platform-configuration</artifactId> 
    <version>${tycho-version}</version> 
    <configuration> 
     <filters> 
     <filter> 
      <type>eclipse-plugin</type> 
      <id>id.of.dependency</id> 
      <restrictTo> 
       <version>1.2.3.2014020241355</version> 
      </restrictTo> 
     </filter> 
     </filters> 
    </configuration> 
<plugin> 
0

我想你可以創建一個配置文件,並添加要作爲唯一的存儲庫中的存儲庫。

0

您可以排除所有傳遞快照DEPS並添加依賴明確:

<dependency> 
    <groupId>com.sun.something</groupId> 
    <artifactId>something</artifactId> 
    <version>version</version> 
    <exclusions> 
     <exclusion> 
      <artifactId>transitive</artifactId> 
      <groupId>com.sun.somethingelse</groupId> 
     </exclusion> 
    </exclusions> 
</dependency> 
    <dependency> 
    <groupId>com.sun.somethingelse</groupId> 
    <artifactId>transitive</artifactId> 
    <version>version</version> 
</dependency> 
+0

它不是傳遞依賴。它只存在於我需要的兩個存儲庫中。我只需要告訴maven比另一個更喜歡一個存儲庫。 – Pushkar

+0

啊好吧......誤解;)正如SebastianH指出,你可以創建一個配置文件。您也可以創建一個定義存儲庫的父類。你也可以在那裏定義插件,但是如果每個從父項繼承的模塊都應該使用這個插件,你應該這樣做。 – Yser

1

中的XML元素列表與Maven在FIFO基礎上。所以,如果你定義你的倉庫在最頂層(在其他倉庫之前),Maven應該最終從那裏解決它。

如果您使用工件存儲庫管理器,則可以定義路由規則。

相關問題