在与两个同事(感谢Mark Alston , Dave Malone !)一起使用自动Jenkins管道部署Cloud Foundry应用程序的过程中,我决定尝试编写Gradle插件来执行一些通常需要完成的任务使用命令行Cloud Foundry Client完成 。

介绍带有一组gradle任务(我敢说,敢于说!)的完全没有想象力的“ ya-cf-app-gradle-plugin” ,这应该有助于自动化将Java应用程序部署到Cloud Foundry环境中涉及的一些常规步骤。 “ ya”或另一部分是因为这只是一个替代插件,Cloud Foundry的权威插件最终将驻留在出色的CF-Java-Client项目中。

我已经提供了带有项目文档的广泛自述文件,该文件应有助于开始使用插件,如果您以前使用过CF cli,则任务应该相当直观。

举例来说,将gradle插件干净地添加到构建脚本中后,通过运行“ ./gradlew task”命令列出以下gradle任务即可:

所有任务均以构建脚本中cfConfig块中提供的以下方式进行配置:

apply plugin: 'cf-app'cfConfig {//CF DetailsccHost = "api.local.pcfdev.io"ccUser = "admin"ccPassword = "admin"org = "pcfdev-org"space = "pcfdev-space"//App Detailsname = "cf-show-env"hostName = "cf-show-env"filePath = "build/libs/cf-show-env-0.1.2-SNAPSHOT.jar"path = ""domain = "local.pcfdev.io"instances = 2memory = 512//Env and servicesbuildpack = "https://github.com/cloudfoundry/java-buildpack.git"environment = ["JAVA_OPTS": "-Djava.security.egd=file:/dev/./urandom", "SPRING_PROFILES_ACTIVE": "cloud"]services  = ["mydb"]
}

通过使用“ cf. *”模式指定gradle属性,可以在以这种方式提供的基本配置之上进行任何覆盖。 例如。 正常推送应用程序将如下所示:

./gradlew cf-push

带有应用程序名称和覆盖的主机名的推送将如下所示:

./gradlew cf-push -Pcf.name=Green -Pcf.hostName=demo-time-temp

所有任务均遵循完全相同的模式,具体取决于cfConfig块(作为属性的权威来源)以及命令行替代。 在CloudFoundry中有一项任务可用于检索应用程序的某些详细信息,该任务为“ cf-get-app-detail”,例如,在部署了应用程序的Canary实例后,您想运行快速测试针对它,任务将遵循以下原则,一旦成功调用,将在结构“ project.cfConfig”中填充应用程序详细信息:

task acceptanceTest(type: Test, dependsOn: "cf-get-app-detail")  {doFirst() {systemProperty "url", "https://${project.cfConfig.applicationDetail.urls[0]}"}useJUnit {includeCategories 'test.AcceptanceTest'}
}

参考文献:

1.该插件基于出色的CF-Java-Client项目构建

2.我从gradle-cf-plugin借来了很多想法,但是或多或少是一个无尘室的实现。

3.这是一个使用插件的示例项目 。

翻译自: https://www.javacodegeeks.com/2016/07/introducing-yet-another-cloud-foundry-gradle-plugin.html

介绍“又一个” Cloud Foundry Gradle插件相关推荐

  1. cloud foundry_介绍“又一个” Cloud Foundry Gradle插件

    cloud foundry 在与两个同事(感谢Mark Alston和Dave Malone !)一起使用自动Jenkins管道部署Cloud Foundry应用程序的过程中,我决定尝试编写Gradl ...

  2. 使用“另类” Cloud Foundry Gradle插件无需停机

    我一直在尝试我的手在写一个gradle这个插件的应用程序部署到Cloud Foundry上 ,并写下这个插件在我以前的帖子 . 我现在通过使用两种方法支持将无停机时间部署到Cloud Foundry中 ...

  3. cloud foundry_使用“另类” Cloud Foundry Gradle插件无需停机

    cloud foundry 我一直在尝试编写用于将应用程序部署到Cloud Foundry的gradle插件 ,并在上一篇文章中写了有关此插件的文章 . 现在,我通过使用两种方法支持将无停机时间部署到 ...

  4. 2019年写一个Cloud Studio插件吧

    纳尼?2019年?其实一开始我的内心是拒绝的,一转眼就到了2018年的尾声,再不写个[2019年]的标题定好文章的保质期,感觉刚写这篇文章就要过期了!然而,回顾2018年,每每想起2018年的收获,我 ...

  5. 2019年如何撸一个Cloud Studio插件?

    纳尼?2019年?其实一开始我的内心是拒绝的,一转眼就到了2018年的尾声,再不写个[2019年]的标题定好文章的保质期,感觉刚写这篇文章就要过期了!然而,回顾2018年,每每想起2018年的收获,我 ...

  6. 从开发者的角度比较Kubernetes和Cloud Foundry

    [编者的话]本文从一个开发者的角度,对Kubernetes和Cloud Foundry进行了多维度的比较,包括:平台是否类PaaS,支持的容器,管理控制台,命令行接口,零宕机部署,外部负载均衡,内部负 ...

  7. Cloud foundry基础

    VMware突然发布了业内第一个开源的PaaS--CloudFoundry. 第一部份主要介绍CloudFoundry的架构设计,从它所包含的模块介绍起,到各部份的消息流向,各模块如何协调合作; 第二 ...

  8. Cloud Foundry 4:应用程序的生命周期

    文章目录 章节概述 什么进入应用程序? pushing 上传 Staging Starting Restarting, Restaging, and Re-pushing --strategy rol ...

  9. cloud foundry云原生开发工程师考试

    文章目录 课程时间 Linux基金会 云计算的基础 Linux基金会活动 培训场地 Linux基础培训产品 Linux基金会认证 培训/认证防火墙 章概述 命令行接口 CF API Documenta ...

最新文章

  1. 完美日记的微服务实践和优化思路
  2. Unable to connect to the Redgate Client Service
  3. 印前处理的“发动机”——RIP
  4. python贪吃蛇毕业设计_【干货|python项目实例——贪吃蛇】- 环球网校
  5. js逻辑训练题_七彩思维逻辑魔盘:全方面锻炼孩子的数学与逻辑思维
  6. 吴恩达深度学习1.4练习_Neural Networks and Deep Learning
  7. 15款最佳的 jQuery 分步引导插件
  8. linux创建文件夹共享文件夹,Linux创建文件夹共享
  9. Excel自动调整行高/行高适应文字内容
  10. 计算机启动后无法进入系统怎么办,笔记本开机进不了系统,小编教你笔记本开机无法进入系统怎么办...
  11. 公式图片转换成Word格式
  12. Exception evaluating SpringEL expression
  13. 生成划掉的字_哪种备忘录划删除线,能划掉文字在字中间划线的便签
  14. STM32的内部参照电压VREFINT(1.2V)和ADC参考电压Vref+如何区分呢
  15. C语言简易程序设计————6、用*号输出字母C的图案
  16. 如何才能成为顶级的数据分析师?
  17. Redis源码阅读笔记 ----数据结构部分 sds
  18. python手机壁纸超清_Python爬虫-王者荣耀高清壁纸下载
  19. Delphi7企业原版_史上最经典的delphi 版本
  20. A connection attempt failed because the connected party did not properly respond after a period of……

热门文章

  1. Java IO: PipedOutputStream
  2. Maven Optional Exclusions使用区别
  3. 《金色梦乡》金句摘抄(六)
  4. Android实现动画Dialog
  5. 8.2-指令周期(学习笔记)
  6. java序列化与深度拷贝
  7. MySQL事务管理+安全管理+MySQL数据类型
  8. tomcat(8)载入器
  9. 打破双亲委派么,怎么打破_打破了vs你错了
  10. poi动态创建文档_POI创建的文档具有不同条件的灵活样式