Gradle依赖项从EAR中排除

Gradle依赖项从EAR中排除,gradle,assembly-resolution,Gradle,Assembly Resolution,我有一个gradle项目和几个子项目。我在库中定义了几个依赖项,在根项目中使用版本号和别名。现在,只要子项目需要它,它就可以用它想要的级别定义别名,例如编译 root - build.gradle - libraries - xercesImpl: 'xerces:xercesImpl:2.8.1', - xalan: 'xalan:xalan:2.7.1', \ project1 : ear - build.gradle - ea

我有一个gradle项目和几个子项目。我在库中定义了几个依赖项,在根项目中使用版本号和别名。现在,只要子项目需要它,它就可以用它想要的级别定义别名,例如编译

root
- build.gradle
    - libraries
        - xercesImpl: 'xerces:xercesImpl:2.8.1',
        - xalan: 'xalan:xalan:2.7.1',
\ project1 : ear
    - build.gradle
        - ear project('project2')
\ project2 : jar
    - build.gradle
        - compile libraries.xercesImpl
        - compile libraries.xalan
因为我已经将xercesImpl和xalan定义为project1的依赖项,并且project1包含在Project2EAR中,所以这些JAR应该添加到ear中,但它被从ear中排除。我检查过,可传递依赖项在任何地方都没有声明为false

我已经用gradlew打印了依赖关系树,它只打印2个以上的罐子,因为其他罐子包括在内:

+--- org.hibernate:hibernate:3.1.3
|    +--- commons-logging:commons-logging:1.0.4 -> 1.1
|    |    +--- log4j:log4j:1.2.12
|    |    +--- logkit:logkit:1.0.1
|    |    +--- avalon-framework:avalon-framework:4.1.3
|    |    \--- javax.servlet:servlet-api:2.3
|    +--- ehcache:ehcache:1.1
|    |    \--- commons-logging:commons-logging:1.0.4 -> 1.1 (*)
|    +--- cglib:cglib:2.1_3
|    |    \--- asm:asm:1.5.3
|    +--- asm:asm:1.5.3
|    +--- asm:asm-attrs:1.5.3
|    +--- commons-collections:commons-collections:2.1.1 -> 3.1
|    +--- dom4j:dom4j:1.6.1
|    +--- javax.transaction:jta:1.0.1B
|    \--- antlr:antlr:2.7.6rc1 -> 2.7.6
+--- net.sf.ehcache:ehcache:2.9.0
|    \--- org.slf4j:slf4j-api:1.7.7
+--- xerces:xercesImpl:2.8.1 (*)
+--- xalan:xalan:2.7.1 (*)

您如何知道这些依赖项被打印为已排除?您是否也有一个示例项目来尝试它?因为它在依赖关系树中有*它被排除了..而且我已经生成了EAR,它也没有这些JAR..这就是整个依赖关系树吗?