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

标签 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任务后,我从Artifacts中的/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/'
}

这可以解决问题,但是如果您有更好的建议,请告诉我。

最佳答案

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

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

如果您有任何其他疑问,请随时在此处或在您提供的支持通知中回复。

关于android - 在ship.io中生成.jar文件和javadoc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32524031/

相关文章:

java - Android Java访问手机前置Flash

android - WebView 无法访问 Assets 中的 jquery 脚本

android - Gradle Project在哪里,所以我可以导入它? (Android Studio)

Android:无法用新版本覆盖现有应用

ios - 无法从命令行运行 UIAutomationTest

build - Bamboo 持续集成

reactjs - 部署成功仍会进入默认页面

java - 如何从外部访问onCreate中声明的Webview?

php - 使用 Android 从在线 MySQL 数据库中获取数据

java - android studio 中无法实例化一个或多个类错误,因此设计未显示