4

在我的 build.gradle 文件中,我为我的非默认 (module2) AppEngine gradle 模块使用以下配置:

appengine {
    downloadSdk = true
    httpAddress = "0.0.0.0"
    httpPort = 8081
    appcfg {
        email = "blahemail@domain.com"
        oauth2 = true
    }
}

但是,当我运行“Google AppEngine 配置”时,模块仍然在some_random_port而不是 8081 上启动。我想修复运行这些端口的端口,因此当我在本地开发中运行测试请求时可以依赖这些端口服务器。

我究竟做错了什么?或者这只是不支持?

==================================================== ==================== Appengine模块结构:

- root( apply java, ear, appengine)
  - default (apply java, war, appengine) - needs to run on 8080 on local dev server
  - module2 (apply java, war, appengine) - needs to run on 8081 on local dev server

应用引擎版本:1.9.22

Gradle Appengine 插件版本:1.9.21

编辑

我还尝试在其自己的“Appengine 运行配置”中运行每个模块,虽然这些模块确实在各自的端口中运行,但我无法再在它们之间进行通信。尝试从默认模块上的 servlet 安排 module2 上的任务会出现以下错误:

com.google.appengine.api.modules.ModulesException: Unknown module
    at com.google.appengine.api.modules.ModulesServiceImpl$ModulesServiceFutureWrapper.convertApplicationException(ModulesServiceImpl.java:365)
    at com.google.appengine.api.modules.ModulesServiceImpl$ModulesServiceFutureWrapper.convertException(ModulesServiceImpl.java:352)
    at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:96)
    at com.google.appengine.api.modules.ModulesServiceImpl.getAsyncResult(ModulesServiceImpl.java:104)
    at com.google.appengine.api.modules.ModulesServiceImpl.getDefaultVersion(ModulesServiceImpl.java:163)
4

1 回答 1

3

@crazystick 为 Maven 回答了这个问题。这是为 Gradle 重新完成的相同解决方案:

apply plugin: ear

...

appengine {
    downloadSdk = true
    httpAddress = "0.0.0.0"
    jvmFlags = ['-Dcom.google.appengine.devappserver_module.default.port=8080',
                '-Dcom.google.appengine.devappserver_module.module1.port=8081']
    appcfg {
        email = "blahemail@domain.com"
        oauth2 = true
    }
}
于 2015-06-15T09:21:04.567 回答