我有一个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/'
}
这解决了问题,但如果你有更好的建议,请告诉我。
答案 0 :(得分:0)
我的名字是Edwin,我是Ship.io的工程师。
您对我们如何构建工件的理解是完全正确的。 Gradle任务完成后,我们立即上传工件。如果要清理工件,则需要完全按照Gradle运行之前的描述进行操作。
如果您有任何其他问题,请随时在此处或您提交的支持票中回复。