>我有一个 Gradle App Engine 项目,我正在使用 Google ApppEngine Dev Server 进行调试。
我不知道为什么,但IntelliJ中的爆炸战争工件指向与Gradle用于爆炸战争的文件夹不同的文件夹。我通过在 Gradle 中指定一个匹配的文件夹来解决这个问题
war {
explodeWar.setDestinationDir(file("./build/libs/exploded/backend-local-test.war"))
}
调试一切顺利。在部署方面,appengineDeploy
任务再次在不同的文件夹中查找爆发的战争,而不是我在 Gradle 中指定的文件夹。
我已经看了一下,但我看不到可以设置的属性来指定appengineDeploy
应该为爆炸战争查看的文件夹。
所以总结一下
Google ApppEngine Dev Server 正在从 IntelliJ 中的工件中提取用于爆炸战争的文件夹。在格拉德尔中改变战争路径似乎不会影响神器的爆炸战争路径。
apppengineRun
和appengineDeploy
似乎总是用./build/exploded-backend
作为他们爆炸的战争道路
如何让 IntelliJ 中的工件以及 Google ApppEngine Dev Server 中的工件使用与 Gradle 任务相同的路径?
我现在使用此处的解决方案解决了这个问题
war {
gradle.taskGraph.whenReady {taskGraph ->
if (taskGraph.hasTask(appengineDeploy)) {
explodeWar.setDestinationDir(file("./build/exploded-backend"))
} else {
explodeWar.setDestinationDir(file("./build/libs/exploded/backend-local-test.war"))
}
}
}
如果有人有更优雅的解决方案,那么请发布它。