我有一个奇怪的问题。我有一个项目,它创建一个war文件,其中包含一些自定义内容,如图像等。到目前为止它看起来不错。剩下的唯一问题是gradle将源jar / zip和javadoc jar / zip拉入我的战争的WEB-INF / lib /文件夹中。
我认为这可能是Idea的问题,但命令行的结果相同。我想这与依赖配置有关? 我使用编译和运行时范围,我的工件从Artifactory解析。
有人能指出我的方向来解决这个问题吗?
更新
当我创建任务时:
task copyAllDependencies(type: Copy) {
from configurations.runtime
into 'allRuntime'
}
或
task copyAllDependencies(type: Copy) {
from configurations.compile
into 'allCompile'
}
我也会得到消息来源。所以它似乎与编译/运行时配置有关。他们正在拉动资源和javadoc。但为什么呢?!
依赖关系声明如下:
dependencies {
compile group: 'org.drools', name: 'drools-core', version: DROOLS_VERSION
compile group: 'org.drools', name: 'drools-compiler', version: DROOLS_VERSION
...
runtime group: 'net.sourceforge.barbecue', name: 'barbecue', version: '1.5-beta1', ext: 'jar'
...
testCompile group: 'org.fitnesse', name: 'fitnesse', version: '20130531'
...
}
答案 0 :(得分:0)
正如我们在评论中发现的那样,您的依赖项将javadoc和sources作为传递依赖项引入。您可以通过
排除这些configurations.all { Configuration config ->
['com.group1', 'com.group2', ..., 'com.groupN'].each { groupId ->
config.exclude [group: groupId, classifier: 'javadoc']
config.exclude [group: groupId, classifier: 'sources']
}
}
注意:我不是常春藤用户,因此选择器(分类器:' javadoc'等)可能需要调整
答案 1 :(得分:0)
这是另一次尝试......有点hacky但可能有效
configurations {
tempCompile
tempRuntime
tempTestCompile
}
dependencies {
tempCompile "org.drools:drools-core:${DROOLS_VERSION}"
tempRuntime "net.sourceforge.barbecue:barbecue:1.5-beta1@jar"
tempTestCompile "org.fitnesse:fitnesse:20130531"
...
compile configurations.tempCompile.asFileTree.matching {
exclude '**/*-sources.jar'
exclude '**/*-javadoc.jar'
}
runtime configurations.tempRuntime.asFileTree.matching {
exclude '**/*-sources.jar'
exclude '**/*-javadoc.jar'
}
testCompile configurations.tempTestCompile.asFileTree.matching {
exclude '**/*-sources.jar'
exclude '**/*-javadoc.jar'
}
}