Gradle运行bat文件作为依赖项

梅德洛

我们有一个.bat文件,用于生成一些源代码。它足够聪明,可以将所有生成的.java文件放在项目中的正确位置。

我已经定义了这样的gradle任务:

task createPojos(type:Exec) {
    workingDir "$dirXsd"
    commandLine 'cmd', '/c', 'createPojos.bat'
}

我还在build.gradle中将此任务定义为defaultTask。这行得通,并且当我从命令行运行“ gradle”或从Eclipse执行createPojo任务时,它会按预期生成代码。但是我想将其定义为依赖项,以便当我从Eclipse执行Gradle-> Refresh All时,它将运行运行.bat的任务。

我试图弄清楚如何将我的createPojo任务作为依赖项运行,但是失败了。我一定不能很好地理解Gradle的概念-您可以将自定义任务之一指定为依赖项吗?不是对另一个任务的依赖,而是build.gradle文件的依赖部分中包含的内容?当我进行全部刷新时,我尝试的所有操作都会给我带来某种gradle错误。例如,这是一个尝试:

dependencies {
    createPojos() // how do I invoke createPojos from here?
}
A problem occurred evaluating project ':WebTransport'.
> Could not find method createPojos() for arguments [] on project ':WebTransport'.
蛋白石

通常,您可以通过将execute方法调用特定任务的实例来运行任务。但这绝对 不是应该如何调用任务。

如果您需要createPojos()dependencies块中调用请将其逻辑移至build.gradle文件中定义的方法,dependencies然后直接在任务操作和在任务操作中调用该方法

你知道,createPojos()会在被称为dependencies每次gradle这个被调用?我不知道不幸的是,当全部刷新运行时究竟调用了什么,但是我想您不会通过这种讨厌的任务调用来改变它的行为。

如果您需要将生成的类放在src文件夹下,则创建一个任务来生成文件并将其放在所需的位置。我假设如果生成了分类,则将不会对其进行编辑。如果是这样,请创建另一个生成类的项目,将其编译并作为jar文件发送。然后,在当前项目中,只需为要生成的jar添加一个依赖项即可。

最后,您不能将任务指定为依赖项,至少不能以您认为的方式指定它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章