[英]Extending a gradle subproject's clean and build behavior
我使用一个名为TexturePacker的程序将单个图像资源打包到单个纹理图集中,以便在游戏中使用。 我通常的工作流程是添加/更改资产,然后使用GUI或命令行手动重新打包图像,并将输出发送到项目资源文件夹,该文件夹仍在源代码控制下。 这可行,但是很乏味。 无论如何,让单个资产在源代码控制下位于项目的根文件夹中,并使“ packing to textureAtlas”步骤成为构建的自动化部分,是更“正确”的选择。 类似于我们如何将源代码保留在VC下,但不保留与构建相关的文件。
所以我的问题变成了,如何用gradle做到这一点?
据我所知,步骤如下:
.gitignore输出文件夹(简单)
钩住子项目的Clean任务,并删除输出文件夹(在main / resources中)
钩住子项目的构建任务(或最合适的地方),然后从gradle中运行JAR。
我找到了一篇有关从gradle运行JAR的文章,这似乎很简单,但是其余的内容使我感到困惑。 我意识到这可能是一个非常基本的问题,我只是有些gra不安,出于某种原因,我只是无法将其包裹住。 无论如何,我的问题是如何最好地解决这个问题。 希望这可以帮助我全面掌握gradle。
谢谢阅读!
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
时将负责删除输出目录。 此外,您将获得增量构建支持,这意味着如果输入目录内容更改,此任务将再次运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.