Gradle从构建中删除资源文件

时间:2016-05-20 14:15:02

标签: android android-studio gradle android-gradle build.gradle

我正在尝试使用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']

但是他们都没有从构建中删除文件。

1 个答案:

答案 0 :(得分:1)

根据此question的答案,无法从构建中删除Android资源,只能删除JAVA资源。

我现在将模板文件存储在项目外部的单独文件夹中,并使用Mako和其他python脚本将它们移动到项目生成步骤中的drawable文件夹。