cloud foundry_介绍“又一个” Cloud Foundry Gradle插件
cloud foundry
在與兩個同事(感謝Mark Alston和Dave Malone !)一起使用自動Jenkins管道部署Cloud Foundry應用程序的過程中,我決定嘗試編寫Gradle插件來執(zhí)行一些通常需要完成的任務使用命令行Cloud Foundry Client完成 。
引入一個完全虛幻的名稱為“ ya-cf-app-gradle-plugin”的一組gradle任務(敢說我敢說!),這應該有助于自動化將Java應用程序部署到Cloud Foundry環(huán)境中涉及的一些常規(guī)步驟。 “ 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
總結
以上是生活随笔為你收集整理的cloud foundry_介绍“又一个” Cloud Foundry Gradle插件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工程投标备案(国注投标备案)
- 下一篇: java10个基础错误_我们处理了10亿