2017-02-13 208 views
0

我在我的gradle中有这个依赖关系树。 我在依赖项部分包含了axis2-xmlbeans-1.6.1。这使得我的项目还包括我不想要的​​。如何从gradle.build中的axis2中删除依赖servlet-api

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

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帮助我消除servlet-api。谢谢。同时运行gradle依赖关系并查看servlet-api仅取决于axis2。 – David