由于历史原因,我在多个目录中拥有资源。
如果我需要这些目录中的所有内容,则可以像这样修改源集:
sourceSets {
main {
java {
srcDir = 'src/main/java'
}
resources {
srcDir = 'src/main/resources'
srcDir = 'resources'
srcDir = 'properties'
}
}
}
但是,我需要为每个目录应用不同的包含/排除过滤器,不幸的是它们彼此冲突,并且resources
中的任何包含/排除过滤器都将其应用于所有3个目录。如何分别过滤每个目录?
最佳答案
SourceDirectorySet
(sourceSets.main.resource
的类)提供了一种 source(SourceDirectorySet)
方法,该方法允许添加其他源集。可以使用 SourceDirectorySet
创建ObjectFactory.sourceDirectorySet(String, String)
的新实例,因此您可以尝试以下操作:
def resourcesSet = objects.sourceDirectorySet("resources", "Resources")
resourcesSet.srcDir 'resources'
// apply filter to resourcesSet
def propertiesSet = objects.sourceDirectorySet("properties", "Properties")
propertiesSet.srcDir 'properties'
// apply filter to propertiesSet
sourceSets {
main {
resources {
source(resourcesSet)
source(propertiesSet)
}
}
}
关于gradle - 如何将多个目录和筛选器模式添加到SourceSet?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63626566/