2017-04-09 110 views
0

我發現有些東西不能工作,我預計工作。爲什麼包括bom不起作用?

我在dependencyManagement部分導入了org.glassfish.jersey:jersey-bom

<dependencyManagement> 
    <dependencies> 
    <dependency> 
     <groupId>org.glassfish.jersey</groupId> 
     <artifactId>jersey-bom</artifactId> 
     <version>2.26-b03</version> 
     <type>pom</type> 
     <scope>include</scope> 
    </dependency> 
    </dependencies> 
</dependencyManagement> 

pom明顯包括下面的依賴關係。

<dependency> 
    <groupId>org.glassfish.jersey.core</groupId> 
    <artifactId>jersey-common</artifactId> 
    <version>${project.version}</version> 
</dependency> 

現在添加自己的依賴

<dependencies> 
    <dependency> 
    <groupId>org.glassfish.jersey.core</groupId> 
    <artifactId>jersey-common</artifactId> 
    <scope>test</scope> 
    </dependency> 
</dependencies> 

而且mvn抱怨。

'dependencies.dependency.version'for org.glassfish.jersey.core:jersey-common:缺少jar。 @第33行,第17列

我的pom有什麼問題?

+1

你應該使用'import'而不是'include'來代替' ...'.... – khmarbaise

+0

@khmarbaise這就是交配!謝謝! –

+0

https://issues.apache.org/jira/browse/MNG-6213 –

回答

0

您是否將project-version定義爲屬性?我想不是,因爲你沒有用它來指定你的BOM的版本。

使用文字串,這應該工作:

<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>org.glassfish.jersey</groupId> 
      <artifactId>jersey-bom</artifactId> 
      <version>2.26-b03</version> 
      <type>pom</type> 
     </dependency> 
     <dependency> 
      <groupId>org.glassfish.jersey.core</groupId> 
      <artifactId>jersey-common</artifactId> 
      <version>2.26-b03</version> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 

<dependencies> 
    <dependency> 
     <groupId>org.glassfish.jersey.core</groupId> 
     <artifactId>jersey-common</artifactId> 
    </dependency> 
</dependencies> 

什麼我感興趣的是,你不應該需要在<dependencyManagement>指定org.glassfish.jersey.core:jersey-common:2.26-b03,因爲它是BOM的一部分,但將相關不起作用如果它不在那裏。