我有一个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/