如何从 gradle.build 中的 axis2 中删除依赖性 servlet-api

how to remove dependency servlet-api from axis2 in gradle.build

我的 gradle 中有这个依赖项树。 我在依赖项部分包含了 axis2-xmlbeans-1.6.1。这使得我的项目还包括我不想要的 servlet-api-2.3

我试图将它从依赖项中删除,但它不起作用。

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]

你知道解决办法吗?

您的示例不足以重现该问题。我 运行 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'
}