2015-06-19 3 views
2

У меня возникла проблема, когда в моем пути к классам появляется несколько версий одного и того же класса. Класс, о котором идет речь, - javax.ws.rs.core.UriBuilder. Версия, которую я хочу использовать, вводится javax.ws.rs:javax.ws.rs-api:2.0.1. Тем не менее, мы также используем клиентскую библиотеку отдыха Jira, которая имеет зависимость от более старой версии трикотажа (com.sun.jersey:jersey-core), в которую включены пакеты java.ws в комплекте.Исключить пакет из зависимостей конечности

Вот пример фрагмент из файла сборки:

dependencies { 
    compile 'com.atlassian.jira:jira-rest-java-client-core:2.0.0-m31' 
    compile 'javax.ws.rs:javax.ws.rs-api:2.0.1' 
    compile 'org.glassfish.jersey.core:jersey-client:2.17' 
} 

Я не могу удалить com.sun.jersey:jersey-core, как он использует другое название пакета из новой версии и может вызвать класс не DEF нашел исключение в клиенте Jira.

Насколько я могу сказать, мои варианты на данный момент являются:

  1. Revert с использованием Джерси 1.x и его реализация jsr311
  2. Как-то есть Gradle исключить javax.ws пакет из старого трикотажа клиент.

Я бы хотел использовать новую версию трикотажа, поэтому # 2 будет моим идеальным решением, но я не уверен, что это возможно. Кто-нибудь знает, как это сделать? Если это невозможно, я открыт для других предложений.

ответ

0

я узнал, что com.sun.jersey: джерси-ядро: 1,19 не связывайте javax. ws.rs и вместо этого отображает их как зависимость от времени компиляции. Добавление этого фрагмента в мой файл build.gradle устраняет проблему.

configurations.all { 
    resolutionStrategy { 
    // For a version that doesn't package javax.ws 
    force 'com.sun.jersey:jersey-core:1.19' 
    } 
} 
1

Вы можете исключить модуль в переходную зависимость так:

compile ('org.glassfish.jersey.core:jersey-client:2.17') { 
     exclude group: 'javax.ws.rs' 
     exclude module: 'javax.ws.rs-api' 
    } 

исх: 50.4.7 here

+0

Проблема заключается в том, что javax не является транзитивной зависимостью, он включен в jQuery. http://mvnrepository.com/artifact/com.sun.jersey/jersey-core/1.17 См. пакеты javax.ws в разделе пакетов. – matheeeny

+0

не http://mvnrepository.com/artifact/org.glassfish.jersey.core/jersey-client/2.17 это то, что вы добавляете в зависимости от вашего вопроса? Здесь javax.wx.rs - зависимость. – RaGe

+0

Да, я добавляю org.glassfish.jersey.core, но Jira приносит con.sun.jersey, у которого javax.ws.rs включен в его банку. – matheeeny