gradle war CopySpec“仅添加”(无覆盖)

gradle war CopySpec “add only” (no override)

我正在尝试设置复制到我的 war 的文件。 源码目录有2个目录,下面的一些文件要加到war中。这在目录不同时有效,但是当两个目录中存在相同的子目录时,第二个目录将覆盖第一个目录。我希望包含两者的文件。

源文件:

A/conf/foo/bar/a.txt
A/conf/foo/bar/b.txt
A/conf/hehe/hihi/c.txt
B/conf/foo/bar/d.txt
B/conf/foo/moo/e.txt
B/conf/asd/f.txt

我试过的是:

war {
    from('A') {
        include 'conf/foo/**'
    }
    from('B') {
        include 'conf/**'
    }
}

预期:war中包含以下文件:

conf/foo/bar/a.txt
conf/foo/bar/b.txt
conf/foo/bar/d.txt
conf/foo/moo/e.txt
conf/asd/f.txt

实际:仅包含来自 B 的文件:

conf/foo/bar/d.txt
conf/foo/moo/e.txt
conf/asd/f.txt

A/conf/foo下的子目录和B/conf下的子目录我都不想列出来,因为子目录太多了,而且我想找一个面向未来的解决方案,因此当有人稍后在其中任何一个下添加另一个文件或目录时,我希望将它们复制到 war 而无需每次都编辑 build.gradle。

project-root 下文件夹 A 和 B 的路径为 src/main/A, src/main/B

下面按预期生成

war {
    from('src/main/A') {
        include 'conf/foo/**'
    }
    from('src/main/B') {
        include 'conf/**'
    }
}