Maven 通过Jenkins部署Google应用程序引擎

Maven 通过Jenkins部署Google应用程序引擎,maven,google-app-engine,jenkins,Maven,Google App Engine,Jenkins,我正试图通过Jenkins服务器部署一个JavaGoogleAppEngine项目。这个想法是,在提交时,我运行我的测试,如果全部通过,我将部署到我的Google项目 我已经尝试了很多方法,并且已经接近了服务帐户json文件。我当前正在运行:mvn clean appengine:update-Dapplication id=-Dappengine.additionalParams=--service\u account\u json\u key\u file= 我遇到的问题是出现以下错误: 您

我正试图通过Jenkins服务器部署一个JavaGoogleAppEngine项目。这个想法是,在提交时,我运行我的测试,如果全部通过,我将部署到我的Google项目

我已经尝试了很多方法,并且已经接近了服务帐户json文件。我当前正在运行:
mvn clean appengine:update-Dapplication id=-Dappengine.additionalParams=--service\u account\u json\u key\u file=

我遇到的问题是出现以下错误:

您没有修改此应用程序的权限(应用程序id=…)

该服务帐户具有Google App Engine部署权限,并添加了Google App Engine所有者,以查看是否修复了任何问题,但它没有

以前,我尝试在运行maven之前使用gcloud命令行工具进行身份验证,但每次这样做时,我都会有生成提示通过浏览器进行身份验证(在CI环境中不起作用)


有没有人能够从詹金斯那里构建并部署到谷歌应用程序引擎?

TL;DR-您的步骤和命令看起来合理,应该有效。您可能需要再次检查以下各项:

  • 服务帐户至少分配了
    App Engine Deployer
    角色
  • Maven命令需要使用服务帐户json文件中的凭据(查看类似于以下内容的日志行,其中包括
    --service\u account\u json\u key\u file=
    ):

对我有用的步骤 我只是尝试了这些步骤,它对我起了作用:

  • googlecloudconsole
    中的
    IAM&Admin
    页面创建新的服务帐户
  • 仅授予“应用程序引擎部署者”角色
  • 选中显示“提供新私钥”的复选框。选择键类型为
    json
  • 保存
    json
    文件
  • 运行以下maven命令以使用服务帐户凭据进行部署:

    mvn clean appengine:update -Dappengine.additionalParams=--service_account_json_key_file=path/to/service_account_key.json
    
  • 如果路径中的任何字符可能会中断参数标记化,则可以使用以下版本:

        mvn clean appengine:update -Dappengine.additionalParams=--service_account_json_key_file="path/to/service_account_key.json"
    

    TL;DR-您的步骤和命令看起来合理,应该有效。您可能需要再次检查以下各项:

    • 服务帐户至少分配了
      App Engine Deployer
      角色
    • Maven命令需要使用服务帐户json文件中的凭据(查看类似于以下内容的日志行,其中包括
      --service\u account\u json\u key\u file=
      ):

    对我有用的步骤 我只是尝试了这些步骤,它对我起了作用:

  • googlecloudconsole
    中的
    IAM&Admin
    页面创建新的服务帐户
  • 仅授予“应用程序引擎部署者”角色
  • 选中显示“提供新私钥”的复选框。选择键类型为
    json
  • 保存
    json
    文件
  • 运行以下maven命令以使用服务帐户凭据进行部署:

    mvn clean appengine:update -Dappengine.additionalParams=--service_account_json_key_file=path/to/service_account_key.json
    
  • 如果路径中的任何字符可能会中断参数标记化,则可以使用以下版本:

        mvn clean appengine:update -Dappengine.additionalParams=--service_account_json_key_file="path/to/service_account_key.json"