【发布时间】:2016-02-26 05:23:20
【问题描述】:
我正在创建一个包含 jar 的分发 zip,作为我的 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 文件中。任何指针
【问题讨论】:
-
您能否提供一个完整的最小构建文件,说明您正在执行什么任务,您希望它做什么以及它会做什么?
-
解压、修改、重新打包?
-
我正在通过分发插件,这不是很有用吗?
标签: gradle