2015-08-20 40 views
2

我在attaching tests guidefollowing question中描述的類似方式之間共享src /測試類。與Maven共享src /測試類,沒有版本規範的測試jar

所以,我有以下的pom.xml依賴關係:

 <dependency> 
      <groupId>com.myco.app</groupId> 
      <artifactId>foo</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>com.myco.app</groupId> 
      <artifactId>foo</artifactId> 
      <version>1.0.0-SNAPSHOT</version> 
      <type>test-jar</type> 
      <scope>test</scope> 
     </dependency> 

,在相反的問題上面,安裝與測試罐子的時候,我不希望指定具體測試 - 版本。在編譯級別的依賴關係:

<dependency> 
     <groupId>com.myco.app</groupId> 
     <artifactId>foo</artifactId> 
     <type>test-jar</type> 
     <scope>test</scope> 
    </dependency> 

在這種情況下,我的pom.xml與錯誤的消息關於缺少的版本。爲什麼會發生?爲什麼我可以指定依賴沒有版本但不是測試jar?有沒有辦法解決這個問題,並使測試罐使用它可以找到的最新的jar?

+0

看看這個答案,看看是否符合您的需求:http://stackoverflow.com/questions/30571/how-do-i-tell-maven-to-use-the-latest-version-of- a-dependency –

+0

這是一個多模塊構建? – khmarbaise

+0

@khmarbaise,是的,這是一個多模塊構建。 – Stas

回答

2

主要代碼依賴項可以在沒有版本的情況下使用的原因是我們的項目中存在一個「main pom」,它會自動爲section中的每個依賴項生成適當的版本。因此,可以指定每個依賴項而不使用特定的版本號。

另一方面,測試jar的依賴關係,沒有在傳遞依賴的其他地方定義版本,所以必須指定特定的版本。