gradle 中的 Ant <resources>、<patternset> 等价于什么?
what are equivalent of Ant <resources>, <patternset> in gradle?
我正在将基于 ant 的项目迁移到 gradle 项目。我必须在许多任务中使用一组文件或模式,这让我写了重复的代码,而它可以简单地保存在 ant 的资源和模式集标签中。 gradle.
中是否有任何更简单的方法,例如等效于资源或模式集
<patternset id="pattern.files.to.instrument">
<include name="lib/cat*.jar"/>
<include name="lib/extensions/cat*.jar"/>
<include name="lib/cas*.jar"/>
<include name="bld/internal-lib/cat*.jar"/>
<exclude name="**/*test.jar"/>
<exclude name="**/*.war"/>
</patternset>
<fileset id="fileset.instrument" dir="${uninstrumented.jars.folder}">
<patternset refid="pattern.files.to.instrument"/>
</fileset>
我不熟悉 Ant,但我对 Gradle 中类似概念的第一个想法是 FileTree
(or a ConfigurableFileTree
)。您可以配置一次 FileTree
并且(因为它实现了 FileCollection
)在任何您想要使用与您指定的模式匹配的文件的地方引用它:
def filesToInstrument = fileTree(projectDir) {
include 'lib/cat*.jar'
include 'lib/extensions/cat*.jar'
include 'lib/cas*.jar'
include 'bld/internal-lib/cat*.jar'
exclude '**/*test.jar'
exclude '**/*.war'
}
task copyFilesToInstrument(type: Copy) {
from filesToInstrument
into 'my/destination/path'
}
然而,据我所知,FileTree
元素总是绑定到根目录,所以如果你只想重用 include/exclude 模式,你可以看看 CopySpec
. CopySpec
类型的元素可以使用方法 with
在实现 CopySpec
自身的任务上重用(例如 Copy
、Zip
、Jar
.. .):
def filesToInstrumentPattern = copySpec {
include 'lib/cat*.jar'
include 'lib/extensions/cat*.jar'
include 'lib/cas*.jar'
include 'bld/internal-lib/cat*.jar'
exclude '**/*test.jar'
exclude '**/*.war'
}
task zipFilesToInstrument(type: Zip) {
from fileTree('src')
with filesToInstrumentPattern
}
我正在将基于 ant 的项目迁移到 gradle 项目。我必须在许多任务中使用一组文件或模式,这让我写了重复的代码,而它可以简单地保存在 ant 的资源和模式集标签中。 gradle.
中是否有任何更简单的方法,例如等效于资源或模式集<patternset id="pattern.files.to.instrument">
<include name="lib/cat*.jar"/>
<include name="lib/extensions/cat*.jar"/>
<include name="lib/cas*.jar"/>
<include name="bld/internal-lib/cat*.jar"/>
<exclude name="**/*test.jar"/>
<exclude name="**/*.war"/>
</patternset>
<fileset id="fileset.instrument" dir="${uninstrumented.jars.folder}">
<patternset refid="pattern.files.to.instrument"/>
</fileset>
我不熟悉 Ant,但我对 Gradle 中类似概念的第一个想法是 FileTree
(or a ConfigurableFileTree
)。您可以配置一次 FileTree
并且(因为它实现了 FileCollection
)在任何您想要使用与您指定的模式匹配的文件的地方引用它:
def filesToInstrument = fileTree(projectDir) {
include 'lib/cat*.jar'
include 'lib/extensions/cat*.jar'
include 'lib/cas*.jar'
include 'bld/internal-lib/cat*.jar'
exclude '**/*test.jar'
exclude '**/*.war'
}
task copyFilesToInstrument(type: Copy) {
from filesToInstrument
into 'my/destination/path'
}
然而,据我所知,FileTree
元素总是绑定到根目录,所以如果你只想重用 include/exclude 模式,你可以看看 CopySpec
. CopySpec
类型的元素可以使用方法 with
在实现 CopySpec
自身的任务上重用(例如 Copy
、Zip
、Jar
.. .):
def filesToInstrumentPattern = copySpec {
include 'lib/cat*.jar'
include 'lib/extensions/cat*.jar'
include 'lib/cas*.jar'
include 'bld/internal-lib/cat*.jar'
exclude '**/*test.jar'
exclude '**/*.war'
}
task zipFilesToInstrument(type: Zip) {
from fileTree('src')
with filesToInstrumentPattern
}