Gradle 如何在上游项目中从fileTree中排除jar?
我们在项目中有以下配置Gradle 如何在上游项目中从fileTree中排除jar?,gradle,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'
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的准确信息,等等
谢谢,
Dean只需在
文件树
上使用排除
。语法与include
的语法相同。好吧,这有点糟糕,我无法编写一些适用于所有文件树(以及可传递的东西)的全局排除。哦,Gradle没有fileTree
依赖项的元数据,所以通常的排除可能无法工作。也许我们可以提供一种在构建脚本中添加元数据的方法。请随时提出功能请求。