我正在创建一个分发zip,其中包含一个jar作为我的gradle任务的输出,如下所示:
class MakeDistZipTask extends Zip {
@TaskAction
def DistZip(){
Properties properties = new Properties()
properties.load(project.rootProject.file('gradle.properties').newDataInputStream())
def versionName = properties.getProperty('versionName')
println("creating a distribution zip")
baseName = versionName
from ('/dist'){ include '*.jar' }
from('src/main/libs/armeabi-v7a/') {
include('*')
into('armeabi-v7a')
}
destinationDir = file('dist/')
}
} 我执行此任务,我得到一个包含jar和armeabi-v7a文件夹的zip。
现在,我想自定义此zip文件而不更改此任务(必需),以便在build.gradle项目中,用户可以根据要求向此zip文件添加文件。我已经尝试了一些解决方案,但似乎没有什么工作得那么好。我试过了
jar{
baseName = 'distZip'
from('src/main/jni/'){
include('VC*.h')
into('includes')
}
manifest {
attributes 'Implementation-Title': 'Analytics Library', 'Implementation-Version': version
}
另一种解决方案:
sourceSets.main.resources{
from('src/main/jni/'){
include('VC*.h')
into('includes')
}
另外,我使用了分发插件:
/*apply plugin: 'java-library-distribution'
version 1.0
distributions{
jar{
baseName='distZip'
contents{
from('src/main/jni/') {
include('VC*.h')
into('includes')
}
}
}
}
没有解决方案将文件添加到zip文件中。任何指针
答案 0 :(得分:1)
我使用分发插件工作了。我在自定义插件项目中添加了插件,在我的项目中,我添加了要添加到我的zip文件夹中的文件集,如下所示:
distributions{
myZip{
from('path'){
include 'file'
}
}
}
答案 1 :(得分:0)
未经测试,但我会尝试这种形式:
DistZip.finalizedBy(newZip)
您还可以执行{{1}}以确保每次运行distZip时都会调用newZip。