如何从上游项目的文件树中排除 jar

  • 本文关键字:文件 排除 jar 项目 gradle
  • 更新时间 :
  • 英文 :


我们在项目中有以下配置...

configurations {
    //compile.exclude module: 'commons'
    //all*.exclude group: 'org.gradle.test.excludes', module: 'reports'
    all*.exclude module: 'log4j'
}
dependencies {
    compile group: 'org.slf4j',          name: 'slf4j-api',               version: '1.6.6'
    compile group: 'org.slf4j',          name: 'log4j-over-slf4j',        version: '1.6.6'
    compile group: 'com.google.inject',  name: 'guice',                   version: '3.0'
    compile group: 'com.google.protobuf',name: 'protobuf-java',           version: '2.4.1'
    //compile group: 'org.asteriskjava',name: 'asterisk-java',         version: '1.0.0.M3'   
    //to be erased soon
    compile group: 'commons-configuration',name:'commons-configuration',version: '1.8'
    //compile group: 'org.bouncycastle',   name: 'bcpg-jdk16',              version: '1.46'
    compile project(':sdi-master')
    compile project(':sdi-webserver')
}

不幸的是,项目SDI-Webserver从这样的文件树中引入了自己的log4j

project(':sdi-webserver') {
    project.ext.genLibDir = file('lib')
    dependencies {    
        compile project(':sdi-master')
        compile fileTree(dir: '../webserver/lib', include: '*.jar')
        compile fileTree(dir: '../webserver/play-1.2.4/framework/lib', include: '*.jar')
        compile fileTree(dir: '../webserver/play-1.2.4/framework', include: 'play-*.jar')   
    }

我们如何排除这个 jar,使其不是依赖项的一部分。 以上排除了我们仅适用于存储库和传递依赖项而不适用于 fileTree,但我们仍然需要以某种方式排除 jar 文件,因为我们希望 eclipse 任务构建正确的 .classpath,我们希望 configurations.compile 具有用于复制 jar 等的准确信息。

谢谢院长

只需在fileTree上使用exclude即可。语法与 include 相同。

最新更新