我们试图在Gradle中从多个文件系统源代码树中构建一个复杂的Zip文件,但无论into我们提供多少规范,它们都将它们放在同一个文件系统中.这可以在Gradle中做到吗?
build/libs/foo.jar --> foo.jar
bar/* --> bar/*
Run Code Online (Sandbox Code Playgroud)
我们得到的是:
build/libs/foo.jar --> bar/foo.jar
bar/* --> bar/*
Run Code Online (Sandbox Code Playgroud)
使用这个:
task installZip(type: Zip, dependsOn: jar) {
from('build/libs/foo.jar').into('.')
from('bar').into('bar')
}
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
编辑:Gradle 1.0-milestone-3
小智 23
试试这个:
task zip(type: Zip) {
from jar.outputs.files
from('bar/') {
into('bar')
}
}
Run Code Online (Sandbox Code Playgroud)
首先......罐子应该在拉链的根部(这似乎是你想要的).其次,通过指定from jar.outputs.files,dependsOnjar任务中有一个隐含的,所以这显示了另一种完成你想要的方法.除了这种方法,如果罐子名称随时间变化,则无关紧要.如果您需要其他帮助,请与我们联系.
小智 7
显然对答案的评论不允许以方便的方式显示更多代码...或者它不是很明显:)我有一个项目是为客户...所以我不能分享完整的项目/构建文件.这是我可以分享的内容(我将项目特定的acron更改为XXX):
task zip(type: Zip) {
from jar.outputs.files
from('scripts/') {
fileMode = 0755
include '**/runXXX.sh'
include '**/runXXX.bat'
}
from('lib/') {
include '**/*.jar'
into('lib')
}
from('.') {
include 'xxx.config'
}
}
这会在zip的根目录中创建一个带有项目jar的zip.将脚本从目录复制到根目录,将配置文件复制到根目录,并在名为/ lib的zip的根目录中创建目录,并将所有jar从项目/ lib复制到zip/lib.
| 归档时间: |
|
| 查看次数: |
16827 次 |
| 最近记录: |