我在Android Studio中有一个带有Android模块和后端模块的项目。后端模块生成一个war文件,我希望通过gradle-aws-plugin将其部署到AWS ElasticBeanstalk。应用程序创建和上传本身工作正常。我可以在指定的存储桶中看到war文件,也可以看到我的Beanstalk应用程序中的版本。
但是,我无法找到将新版本部署到我的环境的gradle任务。
答案 0 :(得分:0)
我正在使用classmethod Gradle plugin将文件上传到S3,但我也找不到任何Gradle插件来“部署”到Elastic Beanstalk。
我目前的想法是在Gradle eb deploy command中使用exec task。我知道这是次优的,但它是我能找到的最接近的东西。
答案 1 :(得分:0)
我不相信可以使用gradle-aws-plugin部署到Elastic Beanstalk,但是有一个gradle-beanstalk-plugin可以用最少的配置完成你想要的。
答案 2 :(得分:0)
插件提供的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