Java Maven依赖项选择
我遇到了一个我拥有的web应用程序的问题 该web应用程序使用jersey库,具体版本为1.8Java Maven依赖项选择,java,rest,maven,jersey,Java,Rest,Maven,Jersey,我遇到了一个我拥有的web应用程序的问题 该web应用程序使用jersey库,具体版本为1.8 <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-server</artifactId> <version>1.8</version> </dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.8</version>
</dependency>
泽西岛
泽西服务器
1.8
问题是上游依赖依赖于另一个Jersey版本2.3,如下所示:
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>2.3</version>
</dependency>
org.glassfish.jersey.core
泽西服务器
2.3
这会在最初加载Jersey 1.8时给我带来问题,但当调用方法时,似乎在Jersey server 2.3中调用了
我想知道我能做些什么来排除我不想要的jersey服务器吗?您可以在依赖项部分用这种声明排除依赖项
<dependency>
<groupId>your.upstream.dependency.groupid</groupId>
<artifactId>your.upstream.dependency.artifactid</artifactId>
<version>[upstream.dep.version]</version>
<exclusions>
<exclusion> <!-- declare the exclusion here -->
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
</exclusion>
</exclusions>
</dependency>
您的.upstream.dependency.groupid
请注意,这可能会产生非常糟糕的影响,特别是因为您正在排除一些看起来较新的内容(即2.3版,但具有不同的groupid)您可以在“依赖项”部分使用这种声明排除依赖项
<dependency>
<groupId>your.upstream.dependency.groupid</groupId>
<artifactId>your.upstream.dependency.artifactid</artifactId>
<version>[upstream.dep.version]</version>
<exclusions>
<exclusion> <!-- declare the exclusion here -->
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
</exclusion>
</exclusions>
</dependency>
您的.upstream.dependency.groupid
请注意,它可能会产生非常糟糕的影响,特别是因为您正在排除一些看起来较新的内容(即版本2.3,但具有不同的groupid)以排除可传递的依赖项:
<project>
...
<dependencies>
<dependency>
<groupId>groupid.of.what.needs.jersey</groupId>
<artifactId>artifactId.of.what.needs.jersey</artifactId>
<version>1.0</version>
<exclusions>
<exclusion> <!-- declare the exclusion here -->
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>2.3</version>
</exclusion>
</exclusions>
</dependency>
...
groupid.of.what.needs.jersey
需要什么,需要什么,球衣
1
org.glassfish.jersey.core
泽西服务器
2.3
但是,存在另一个依赖项可能与Jersey 1.8不兼容的危险。如果可能,最好自己使用相同的版本。要排除可传递依赖项:
<project>
...
<dependencies>
<dependency>
<groupId>groupid.of.what.needs.jersey</groupId>
<artifactId>artifactId.of.what.needs.jersey</artifactId>
<version>1.0</version>
<exclusions>
<exclusion> <!-- declare the exclusion here -->
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>2.3</version>
</exclusion>
</exclusions>
</dependency>
...
groupid.of.what.needs.jersey
需要什么,需要什么,球衣
1
org.glassfish.jersey.core
泽西服务器
2.3
但是,存在另一个依赖项可能与Jersey 1.8不兼容的危险。如果可能的话,最好自己使用相同的版本。谢谢ben75,这就是解决方案。我会接受以上的答案,因为这是第一次。谢谢你。事实上,ben75刚刚在我的答案之前得到了他的答案(当我打字的时候!)谢谢你ben75,这就是解决办法。我会接受以上的答案,因为这是第一次。谢谢。事实上,ben75刚刚在我的答案之前得到了他的答案(当我打字的时候!)