2013-10-02 3 views
1

У меня возникла проблема с веб-приложением, которое у меня есть.Выбор зависимости Maven

Веб-приложение использует библиотеку джерси и специфика версии 1.8.

<dependency> 
     <groupId>com.sun.jersey</groupId> 
     <artifactId>jersey-server</artifactId> 
     <version>1.8</version> 
    </dependency> 

Проблема заключается в том, что перед зависимость зависит от другого Джерси версии 2.3, который выглядит следующим образом:

<dependency> 
     <groupId>org.glassfish.jersey.core</groupId> 
     <artifactId>jersey-server</artifactId> 
     <version>2.3</version> 
    </dependency> 

Это вызывает у меня проблемы, как первоначально Джерси 1,8 загружен, но тогда, когда вызываются методы его кажется, вызваны в Jersey-server 2.3

Я хотел бы знать, есть ли что-нибудь, что я могу сделать, чтобы исключить jersey-сервер, который я не хочу?

ответ

3

Чтобы исключить транзитивные зависимость:

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

Но есть опасность, что другая зависимость не может быть совместима с Джерси 1.8. Было бы лучше использовать ту же самую версию самостоятельно, если это возможно.

+0

спасибо, это было решением. – nikkatsa

2

Вы можете исключить зависимости с таким родом декларации в ваших зависимости разделе

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

reference

Будьте осторожны, это может иметь очень плохие последствия, особенно потому, что вы исключаете то, что кажется более новым (то есть версия 2.3, но с другой GroupID)

+0

Спасибо ben75, это было решением. Я соглашусь в качестве ответа выше, поскольку это было первым. Спасибо. – nikkatsa

+0

На самом деле ben75 просто получил свой ответ прямо перед моим (как я печатал!) – NickJ

Смежные вопросы