如何使用Gradle运行/部署Google AppEngine托管虚拟机

时间:2015-02-07 05:44:59

标签: java google-app-engine gradle google-cloud-endpoints gcloud

我已经使用自定义运行时作为AppEngine应用程序推送,运行和测试了托管VM。现在我想把它变成多模块,默认模块是配置为与Android一起使用的Google Cloud Endpoint。因此,我使用Gradle作为我的构建系统。

现在,我注意到Google已经对gcloud预览应用运行/部署到gradle-appengine-plugin进行了一些初步提交: https://github.com/GoogleCloudPlatform/gradle-appengine-plugin/commit/2e4a2b8abb7ec7905012f1f9c12adea7010a41b7

如何使用此扩展程序?我可以像这样在build.gradle中添加一个部分吗?

appengine {
    endpoints {
        getClientLibsOnBuild = true
        getDiscoveryDocsOnBuild = true
    }
    gcloud {
        project = 'projectId?'
        app {
            dockerHost = tcp://192.168.59.103:2376
            version = 1.4.1
            server = //What goes here?
        }

    }
}

或者我完全错了?

请指导我如何使用它。

另外,具体如何为" custom vm"设置build.gradle规则。哪个不是基于标准的Java运行时? (因为我不能将app.yaml和Dockerfile打包到war文件夹中)

1 个答案:

答案 0 :(得分:2)

我现在要避免这种情况,插件的gcloud部分仍在制定中。至于"服务器"标志,docs,你真的不需要指定。

您可以尝试运行部署的两个选项:

  1. 现在直接使用gcloud(从命令行)。

  2. 您可以在Gradle中尝试使用Exec任务来调用您的gcloud,您可以通过AppEnginePlugin.getExplodedAppDirectory(project).absolute path

  3. 获取webapp目录

    您必须将Exec task添加到构建文件中才能将其挂钩。它可能如下所示:

    <强>的build.gradle

    task gcloudExec1(type:Exec) {
        commandline 'gcloud', 'preview', 'app', 'deploy'
        args "--dockerHost=tcp:"
        args "--version=1.4.1"
        ....
        args AppEnginePlugin.getExplodedAppDir(project).absolutepath
    }