我们有一个.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] 删除。
我来说两句