2014-12-07 33 views
0

我使用一个名为TexturePacker的程序将单个图像资源打包到单个纹理图集中以供游戏使用。我通常的工作流程是添加/更改资产,然后使用GUI或命令行手动重新打包图像,并将输出发送到源代码管理下的项目资源文件夹。这有效,但它很乏味。无论如何,让单个资产在源代码控制下的项目根文件夹中感觉更“正确”,并且“pack to textureAtlas”步骤是构建的自动化部分。类似于我们如何保持VC下的源代码,但不是与构建相关的文件。扩展gradle子项目的清洁和构建行为

所以我的问题就变成了,我该如何用gradle来做到这一点?

至于我可以告诉的步骤将是:

的.gitignore输出文件夹(容易)

钩到子项目的清洁任务,并删除输出文件夹(在主/资源)

挂钩到子项目的构建任务(或任何地方最合适的地方),并从gradle运行JAR。

我发现了一篇关于从gradle运行JAR的文章,它看起来很简单,但其余的让我感到困惑。我意识到这可能是一个非常基本的问题,我只是有一些与Gradle的心理障碍,因为某种原因,我无法将头围住它。无论如何,我的问题是如何最好地解决这个问题。希望这会帮助我处理一般的Gradle。

感谢您的阅读!

回答

1

Gradle的伟大之处在于,如果您正确地定义了任务,则所描述的“步骤”大部分都是为您处理的。所以直接回答你的任务。

  1. 只需将您的构建输出与您的Gradle输出(类,罐子等)的其余部分放在正常的“构建”文件夹中即可。无需将另一个文件夹添加到.gitignore。
  2. 如果您正确定义您的输入/输出(如下所示),Gradle将为您处理此问题。
  3. 只需将您的新任务作为依赖添加到任何其他适当的任务。在很多情况下,只需“组装”任务即可。

如果您使用可执行的jar来创建您的纹理,您可能会想要使用JavaExec任务。

task buildTextures(type: JavaExec) { 
    inputs.dir 'textures/dir' 
    outputs.dir "$buildDir/textures" 

    jvmArgs '-jar', 'somejar.jar' 
    args // arguments to executable jar main class 
} 

assemble.dependsOn buildTextures 

通过指定的输入/输出摇篮将做clean当删除输出目录的护理。此外,您还获得增量构建支持,这意味着如果输入目录内容更改,此任务将再次运行。

+0

这比我预期的要干净,我喜欢增量构建支持。谢谢! – 2014-12-07 23:35:38