2017-02-14 8 views
1

マルチプロジェクトのGradleプロジェクトのfoo、bar、およびbazの場合。私はjavadoc jarファイルをzipファイルに収集する方法

./build.gradle 
./settings.gradle 
./foo/build.gradle 
./bar/build.gradle 
./baz/build.gradle 

settings.gradle

include ":foo" 
include ":bar" 
include ":baz" 

トップ...ライブラリとのjavadoc、すなわちfoo.jarを、AND FOO-javadoc.jarの両方を持つzipファイルを作成するタスクを作成しようとしていますレベルのビルド

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

私はgradle clean buildZipでこれを呼び出すとzipファイルが作成されますが、私は期待していた任意の-javadocのJARファイルなし...のJavaDocジャーをプロジェクトに生成されたディレクトリを構築し、例えばfoo/build/lib/foo-javadoc.jar私はproject (':foo').artifactsなどの複数の組み合わせを試しました。

答えて

0

これは、以下を使用して可能です。 javadocJarは、allprojectsブロックに定義されているタスクの名前です。

from (rootProject.allprojects.javadocJar.outputs) { 
    into 'javadoc' 
} 
関連する問題