App Engine 在 Gradle 中引发了战争文件夹问题



>我有一个 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 中的工件中提取用于爆炸战争的文件夹。在格拉德尔中改变战争路径似乎不会影响神器的爆炸战争路径。

apppengineRunappengineDeploy似乎总是用./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"))
}
}
}

如果有人有更优雅的解决方案,那么请发布它。

最新更新