Gradle 如何将javadoc jar收集到zip文件中

Gradle 如何将javadoc jar收集到zip文件中,gradle,Gradle,对于多项目Gradle项目,foo、bar和baz。我正在尝试创建一个任务,该任务创建一个包含库和javadoc的zip文件,即foo.jar和foo javadoc.jar ./build.gradle ./settings.gradle ./foo/build.gradle ./bar/build.gradle ./baz/build.gradle 格雷德尔酒店 include ":foo" include ":bar" include ":baz" 顶级构建 allprojects {

对于多项目Gradle项目,foo、bar和baz。我正在尝试创建一个任务,该任务创建一个包含库和javadoc的zip文件,即foo.jar和foo javadoc.jar

./build.gradle
./settings.gradle
./foo/build.gradle
./bar/build.gradle
./baz/build.gradle
格雷德尔酒店

include ":foo"
include ":bar"
include ":baz"
顶级构建

allprojects {
    apply plugin: 'java'

    task generateJavadoc (type : Javadoc) {
        source = sourceSets.main.allJava  
        classpath = sourceSets.main.compileClasspath
        failOnError = false             
    }
    task javadocJar(type: Jar, dependsOn: generateJavadoc) {
        classifier = 'javadoc'
        from generateJavadoc.destinationDir                     
    }   
    artifacts {
        archives javadocJar     
    }

}

task buildZip(type: Zip, dependsOn: build) {
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
    from (project(':foo').configurations.runtime) {
        into 'jars'
    }
    from (project (':foo').configurations.archives.all) {
        into 'jars'
    }
}

当我用
gradlecleanbuildzip
调用它时,创建了一个zip文件,但没有我所期望的any-javadoc JARs。。。JavaDoc jar被生成到项目构建目录中,例如foo/build/lib/foo-JavaDoc.jar我已经尝试了from
project(“:foo”)的多种组合。工件
等。

这可以通过以下方法实现。注意
javadocJar
是在
allprojects
块中定义的任务的名称

from (rootProject.allprojects.javadocJar.outputs) {
    into 'javadoc'
}