2017-02-13 23 views
0

У меня есть это дерево зависимостей в моей градиенте. Я включил axis2-xmlbeans-1.6.1 в раздел зависимостей. Это делает мой проект также включать servlet-api-2.3, которого я не хочу.Как удалить зависимость servlet-api от axis2 в gradle.build

Я попытался удалить его из зависимостей, но он не работает.

dependencies { 
    compile('org.apache.axis2:axis2-xmlbeans:1.6.1'){ 
      //exclude module: 'javax.servlet:servlet-api:2.3' 
      exclude group: 'javax.servlet' , module: 'servlet-api' 
    } 
... 
} 

Результат gradle dependencies:

+--- org.apache.axis2:axis2-xmlbeans:1.6.1 [default] 
| +--- org.apache.axis2:axis2-codegen:1.6.1 [compile,master,runtime] 
| | +--- org.apache.axis2:axis2-kernel:1.6.1 [compile,master,runtime] 
| | | +--- org.apache.ws.commons.axiom:axiom-api:1.2.12 [compile,master,runtime] 
| | | | +--- jaxen:jaxen:1.1.6 [compile,master,runtime] 
| | | | +--- ..... 
| | | +--- javax.servlet:servlet-api:2.3 [compile,master,runtime] 

Вы знаете решение?

ответ

1

Ваш пример недостаточно хорош, чтобы воспроизвести проблему. Я побежал gradle dependencies по этому сценарию:

apply plugin: "java" 

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile('org.apache.axis2:axis2-xmlbeans:1.6.1') { 
     //exclude module: 'javax.servlet:servlet-api:2.3' 
     exclude group: 'javax.servlet', module: 'servlet-api' 
    } 
} 

И нет servlet-api. Вероятно, зависимость зависит от другой конфигурации (может быть, master, она похожа на вашу пользовательскую конфигурацию). Вы можете попытаться устранить это оттуда, или вы можете удалить зависимость от всех конфигураций:

configurations { 
    master 
    all*.exclude group: 'javax.servlet', module: 'servlet-api' 
} 
+0

Ваши настройки ..master помогают мне устранить сервлет-api. Благодарю. Также выполняйте зависимости gradle и посмотрите, что servlet-api зависит только от оси2. – David