问题补充:
忽略了提到(因为我一开始并不认为这是相关的) srcDir
名称需要在存档中创建,作为其他所有内容的封闭文件夹。
因此,完整档案中的结构如下所示:
srcDirName
aaa.class
bbb.class
ccc.class
propDirName
properties.txt
下面的代码是创建结构的解决方案,但没有回答我最初的问题,因为它依赖于 exclude
阻止不需要的文件 propBaseDir
不被包括在内。到目前为止,我还没有找到一个解决方案,仅仅使用 into
没有 exclude
.
感谢michael easter提供的使用 into
```
def srcDir = "build/classes/java/main/examples"
def srcDirName = "examples"
def propBaseDir = "src/main/java/examples"
def propDirName = "nls"
task deployAsJar(type: Jar) {
from {
files(srcDir) {
include "**/" into srcDirName
}
}
from {
files(propBaseDir) {
exclude ".java"
include "$propDirName/*"
}
}
archiveFileName = "examples.jar"
destinationDirectory = file("~")
}
原始问题
我有一个gradle任务,主要是做我想要的:
中的所有文件 `srcDir` 是复制的,但不是 `srcDir` 它本身
中的所有文件 `propDir` 已复制,包括 `propDir` 它本身
除了,所有文件 `propBaseDir` (包含dir to) `propDir` )也被复制了,我不想。
我知道我可以用 `exclude` 排除文件,但有没有办法只将propdir及其文件复制到存档中?
task deployAsJar(type: Jar) {
from {
files(srcDir) {
include "/*"
}
}
from {
files(propBaseDir) {
include "$propDir/"
}
}
archiveFileName = "examples.jar"
destinationDirectory = file("~")
}
1条答案
按热度按时间4c8rllxm1#
这里是工作示例。
(编辑:更新以反映评论/op中的新信息。请注意,我不确定更广泛的目标,因此可能有比使用
deployAsJar
任务。)考虑:
这里的诀窍是
into
与from
在归档文件中标识文件应放置的目标位置。在我的回购示例中,这将产生: