我正在尝试使用Mako根据一些标志生成一些文件。 排除不必要的信息,我想在项目的src和res文件夹中都有一些* .tpl文件,我需要在构建时忽略它们。
我正在使用Android Studio,所以我使用Gradle构建。我的build.gradle
文件如下所示:
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
我尝试从构建中删除这些文件,将文件更改为:
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java {
srcDirs = ['src']
exclude '*.tpl'
}
res {
srcDirs = ['res']
exclude '*.tpl'
}
assets.srcDirs = ['assets']
}
}
适用于java文件,但在构建时我收到此错误:
:Presentation:generateReleaseResValues UP-TO-DATE
:Presentation:generateReleaseResources UP-TO-DATE
:Presentation:packageReleaseResources
D:\example\res\layout\stuff.xml.tpl
Error:Error: The file name must end with .xml
:Presentation:packageReleaseResources FAILED
Error:Execution failed for task ':Presentation:packageReleaseResources'.
> D:\example\res\layout\stuff.xml.tpl: Error: The file name must end with .xml
Information:BUILD FAILED
知道我在这里做错了吗?
后来编辑:
我试过的其他事情:
根据@Stanislav的回答,我改为exclude '**/*.xml.tpl'
,但失败并出现同样的错误。
然后我尝试更改为exclude '**/*.tpl.xml'
以避免该错误,但我得到了这个:
Error:Execution failed for task ':Presentation:packageReleaseResources'.
> D:example\res\layout\stuff.tpl.xml: Error: '.' is not a valid file-based resource name character: File-based resource names must contain only lowercase a-z, 0-9, or underscore
所以接下来的测试是将文件命名为stuff_tpl.xml
,将exclude命令命名为exclude '**/*_tpl.xml'
,但这会引发错误:
Error:(1) Error parsing XML: syntax error
D:example\res\layout\stuff_tpl.xml
我还尝试了以下几行:
excludes = ['**/*_tpl.xml']
excludes = ['layout/*_tpl.xml']
excludes = ['layout/stuff_tpl.xml']
但是他们都没有从构建中删除文件。