Gradle war插件引入了javadoc和源代码

时间:2016-09-28 07:00:34

标签: gradle build.gradle

我有一个奇怪的问题。我有一个项目,它创建一个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'
    ...
}

2 个答案:

答案 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'
    }
}