在ship.io中生成.jar文件和javadoc

时间:2015-09-11 12:55:28

标签: android gradle continuous-integration

我有一个Gradle任务,它为我的库和Javadocs生成.jar文件:

apply plugin: 'com.android.library'

task javadoc(type: Javadoc) {
    source = android.sourceSets.main.java.srcDirs
    classpath += project.files(project.android.getBootClasspath())
    destinationDir = file("$output javadoc/")
    //Suppress warnings that can cause fail build on continuous integration tools
    failOnError false
}

task clearJar(type: Delete) {
    delete "$output $filename"
}

task makeJar(type: Copy) {
    from('build/intermediates/bundles/release/')
    into("$output")
    include('classes.jar')
    rename('classes.jar', "$filename")
}

//Dependent tasks will be executed first before executing requested task
makeJar.dependsOn(javadoc, clearJar, ':app:packageReleaseJar')

在我正在使用的继续集成框架(ship.io)中,在完成makeJar任务后,我从工件中的/app/build/收到以下所有内容:

tmp.zip Zip Archive 
intermediates.zip   Zip Archive 
generated.zip   Zip Archive 
myLib.jar       
classes.jar

但我只想要一个包含mylib.jar and javadocs的zip文件。不需要中介,生成,类和临时。你知道任何解决方案吗?

附录

我添加了另一项删除不需要的文件夹的任务:

task releaseLib(type: Delete, dependsOn: makeJar) {
    delete 'build/generated/'
    delete 'build/intermediates/'
    delete 'build/outputs/'
    delete 'build/tmp/'
}

这解决了问题,但如果你有更好的建议,请告诉我。

1 个答案:

答案 0 :(得分:0)

我的名字是Edwin,我是Ship.io的工程师。

您对我们如何构建工件的理解是完全正确的。 Gradle任务完成后,我们立即上传工件。如果要清理工件,则需要完全按照Gradle运行之前的描述进行操作。

如果您有任何其他问题,请随时在此处或您提交的支持票中回复。