Подтвердить что ты не робот

В чем заключается цель включения зависимости от импорта с использованием джерси-бомбы в проекте трикотажа?

При создании jersey используя the jersey-quickstart-grizzly2 артефакт

mvn archetype:generate -DarchetypeArtifactId=jersey-quickstart-grizzly2 \
-DarchetypeGroupId=org.glassfish.jersey.archetypes -DinteractiveMode=false \
-DgroupId=com.example -DartifactId=simple-service -Dpackage=com.example \
-DarchetypeVersion=2.7

pom сгенерировал зависимость jersey-bom , которую можно удалить:

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.glassfish.jersey</groupId>
                <artifactId>jersey-bom</artifactId>
                <version>${jersey.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

И эта зависимость:

<dependency>
      <groupId>org.glassfish.jersey.containers</groupId>
      <artifactId>jersey-container-grizzly2-http</artifactId>
</dependency>

так выглядит график зависимости maven:

enter image description here

В чем заключается цель включения зависимости jersey-bom в проект?

4b9b3361

Ответ 1

Вы не должны удалять jersey-bom из dependencyManagement.

Спецификации спецификаций (спецификаций), связанные с соответствующими зависимостями, чтобы их версии работали вместе. Вы можете прочитать об этом в документах maven на этой странице.

Поскольку он живет в dependencyManagement (не в dependencies), он фактически не добавляет зависимости к вашему проекту, а просто централизует управление версиями. Если вы не знакомы с этой разницей, прочитайте больше в этом SO-ответе.

В принципе, спецификация позволяет вам добавить столько зависимостей от Джерси, сколько вам нужно, не беспокоясь о смешении плохих версий:

<dependencies>
    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-grizzly2-http</artifactId>
        <!-- NO VERSION NEEDED BECAUSE OF THE BOM -->
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-json-jackson</artifactId>
        <!-- NO VERSION NEEDED BECAUSE OF THE BOM -->
    </dependency>
</dependencies>