我使用一个名为TexturePacker的程序将单个图像资源打包到单个纹理图集中,以便在游戏中使用。我通常的工作流程是添加/更改资产,然后使用GUI或命令行手动重新打包图像,并将输出发送到项目资源文件夹,它仍然处于源代码管理之下。这很有效,但很繁琐。无论如何,感觉更多"正确"将单个资产放在项目的源代码管理下的根文件夹中,并将"包装到textureAtlas"步骤是构建的自动化部分。类似于我们如何在VC下保留源代码而不是与构建相关的文件。
所以我的问题变成了,我怎么能用gradle做到这一点?
据我所知,步骤将是:
.gitignore输出文件夹(简单)
挂钩子项目的Clean任务,并删除输出文件夹(在main / resources中)
进入子项目的构建任务(或任何最适合的地方),并从gradle运行JAR。
我发现了一篇关于从gradle运行JAR的文章,它似乎很简单,但其余的让我感到困惑。我意识到这可能是一个非常基本的问题,我只是有一些带有gradle的心理障碍,我只是因为某种原因无法绕过它。无论如何,我的问题是如何最好地解决这个问题;希望这能帮助我掌握一般的gradle。
感谢阅读!
答案 0 :(得分:1)
关于Gradle的好处是"步骤"如果您正确定义任务,那么您所描述的内容主要是为您处理的。所以直接回答你的任务。
如果您使用可执行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
通过指定输入/输出,Gradle将在执行clean
时删除输出目录。此外,您还可以获得增量构建支持,这意味着如果输入目录内容发生更改,此任务将再次运行。