tar*_*lah 18 java jersey java-ee maven jersey-2.0
使用工件生成基于球衣的项目时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依赖图的样子:
 
 
jersey-bom在项目中包含依赖项的目的是什么?
Ald*_*den 39
你不应该删除jersey-bom的dependencyManagement.
BOM(物料清单)包相关的依赖关系,以便它们的版本一起工作.您可以在此页面上的maven文档中阅读有关它的更多信息.
因为它存在于dependencyManagement(而不是dependencies)中,它实际上并没有为项目添加依赖项,它只是集中了版本管理.如果您不熟悉这种差异,请在此SO答案中阅读更多内容.
基本上,BOM允许您根据需要添加尽可能多的球衣依赖关系,而不必担心混合不良版本:
<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>
| 归档时间: | 
 | 
| 查看次数: | 6973 次 | 
| 最近记录: |