【问题标题】:gradle-aws-plugin elasticbeanstalk how to deploy uploaded versiongradle-aws-plugin elasticbeanstalk 如何部署上传的版本
【发布时间】:2016-02-24 15:46:14
【问题描述】:

我在 Android Studio 中有一个项目,其中包含一个 Android 模块和一个后端模块。后端模块生成一个我想通过gradle-aws-plugin 部署到AWS ElasticBeanstalk 的war 文件。应用程序创建和上传本身工作正常。我可以在我的 Beanstalk 应用程序中看到指定存储桶中的 war 文件和版本。

但是我找不到将新版本部署到我的环境的 gradle 任务。

【问题讨论】:

    标签: amazon-web-services gradle amazon-elastic-beanstalk


    【解决方案1】:

    我正在使用 classmethod Gradle plugin 将文件上传到 S3,但我也找不到任何 Gradle 插件来“部署”到 Elastic Beanstalk。

    我目前的想法是在 Gradle 中使用 eb deploy command exec task。我知道这是次优的,但它是我能找到的最接近的东西。

    【讨论】:

      【解决方案2】:

      我认为使用 gradle-aws-plugin 部署到 Elastic Beanstalk 是不可能的,但是有一个 gradle-beanstalk-plugin 可以通过最少的配置完全满足您的需求。

      【讨论】:

        【解决方案3】:

        插件提供的awsEbMigrateEnvironment 任务可以实现。

        如果你让它依赖于build.gradle,比如:

         ...
         awsEbCreateApplicationVersion.dependsOn uploadBundle
         awsEbMigrateEnvironment.dependsOn awsEbCreateApplicationVersion
        

        然后做gradle awsEbMigrateEnvironment

        假设您已正确配置所有内容。 将构建、上传、创建新版本并最终部署到您在配置中指定的环境中:

        beanstalk { 
            environment { 
                envName = ... 
                versionLabel = ...
            } 
         }
        

        或者,如果您想手动完成,您可以删除 dependsOn 并创建一个类似的任务:

        import jp.classmethod.aws.gradle.elasticbeanstalk.*
        task ebDeployGivenVersion(type: AWSElasticBeanstalkCreateEnvironmentTask){
             versionLabel = "${project.findProperty('wishedVersion') ?: 'foobar'}"   
        }
        

        然后: gradle ebDeployGivenVersion -PwishedVersion=v1.2

        【讨论】:

          猜你喜欢
          • 2017-08-02
          • 1970-01-01
          • 1970-01-01
          • 2020-09-01
          • 2014-03-02
          • 2017-09-24
          • 2018-02-01
          • 2016-09-05
          • 2020-07-01
          相关资源
          最近更新 更多