Почему включение бом не работает?

Я обнаружил, что что-то не работает, что я ожидал, чтобы работать.

Я импортировал org.glassfish.jersey:jersey-bom в свой раздел dependencyManagement.

<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' для org.glassfish.jersey.core:jersey-common:jar отсутствует. @ строка 33, столбец 17

Что не так с моей помпой?


person Jin Kwon    schedule 09.04.2017    source источник
comment
Вы должны использовать import вместо include для <scope>...</scope>....   -  person khmarbaise    schedule 09.04.2017
comment
@khmarbaise Вот и все, приятель! Спасибо!   -  person Jin Kwon    schedule 10.04.2017
comment
issues.apache.org/jira/browse/MNG-6213   -  person Jin Kwon    schedule 10.04.2017


Ответы (1)


Вы определили project-version как свойство? Думаю, нет, поскольку вы не используете его для указания версии своей спецификации.

Используя литеральную строку, это должно работать:

<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>

Что меня интригует, так это то, что вам не нужно указывать org.glassfish.jersey.core:jersey-common:2.26-b03 в <dependencyManagement>, так как это часть спецификации, но зависимость не работает, если ее нет.

person lpacheco    schedule 09.04.2017