如何从 Grails 控制器构建外部 Gradle 项目?圣杯 2.0.0
更新:我向 Adam Murdoch(gradle 的联合创始人)发送了关于这个问题的电子邮件:http ://forums.gradle.org/gradle/topics/how_can_i_use_the_gradle_tooling_api_from_a_grails_controller
虽然,我对这个问题没有直接的答案,但我确实有一个解决方案。任何有关此主题的进一步见解将不胜感激。
我使用了 Luke Daley 提供的 gradle 构建脚本。运行 build.gradle,它输出了 gradle tooling api 所需的 4 个 jar 文件。然后我将它们放入我的 Grails lib 文件夹中。
然后,我将以下代码写入名为 consoleController.groovy 的 grails 控制器中。
import org.gradle.tooling.BuildLauncher
import org.gradle.tooling.GradleConnector
import org.gradle.tooling.ProjectConnection
class consoleController {
def run = {
println "new run -------------------------------------"
println "Building file..."
String projectDir = "C:\\Documents and Settings\\Administrator\\Desktop\\demo"
GradleConnector connector = GradleConnector.newConnector()
connector.forProjectDirectory(new File(projectDir))
ProjectConnection connection = connector.connect()
try {
BuildLauncher launcher = connection.newBuild()
launcher.forTasks("hello")
launcher.run()
} finally {
connection.close()
}
}
}
我还创建了一个名为“demo”的目录 - 带有一个 build.gradle 文件。
task hello {
println "hello world"
}
我得到以下堆栈跟踪 - 错误:请看 - http://forums.gradle.org/gradle/topics/how_can_i_use_the_gradle_tooling_api_from_a_grails_controller
StackOverflow.com 的堆栈跟踪太长。