日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在CloudBees上开发,测试和部署独立应用程序

發(fā)布時(shí)間:2023/12/3 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在CloudBees上开发,测试和部署独立应用程序 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

CloudBees是一個(gè)云平臺,為您的應(yīng)用程序提供存儲(chǔ)庫,CI服務(wù)(Jenkins)和服務(wù)器。 因此,您需要開發(fā),測試和部署所有內(nèi)容。 有很多選項(xiàng),例如存儲(chǔ)庫可以是Git或SVN,對于服務(wù)器,您可以選擇Jetty,Tomcat,Glassfish,JBoss,Wildfly等。還可以運(yùn)行帶有端口號的獨(dú)立應(yīng)用程序,因此您可以啟動(dòng)自己的服務(wù)器。 在這種情況下,我們將在這里介紹。

spray.io是適用于Web應(yīng)用程序的Scala框架。 它允許您創(chuàng)建獨(dú)立的Web應(yīng)用程序(啟動(dòng)它們自己的服務(wù)器,使用Spray-can)或稍微受限制的.war的Web應(yīng)用程序(spray-servlet),您可以將其部署在Glassfish,JBoss等JEE服務(wù)器上。我們將使用獨(dú)立的這里。

您可以從github克隆應(yīng)用程序。 現(xiàn)在讓我們快速瀏覽一下。

該應(yīng)用程序

開機(jī)

Boot文件是Scala App ,因此它類似于具有main方法的java類。 它是可運(yùn)行的。 它創(chuàng)建Service角色,該角色正在處理所有HTTP請求。 它還從app.port系統(tǒng)屬性讀取端口號, app.port服務(wù)綁定到主機(jī)和端口。 app.port由CloudBees提供,如果要在本地運(yùn)行該應(yīng)用程序,則需要通過jvm命令行-Dapp.port=8080 。

服務(wù)

Service具有MyService特性,該特性僅處理到空路徑的路由。 是的,該應(yīng)用程序不是很復(fù)雜!

建檔

build.gradle文件更有趣。 讓我們從頭開始。

  • mainClassName屬性設(shè)置為Scala App。 當(dāng)您通過gradlew run從命令行在本地運(yùn)行該類時(shí),將要運(yùn)行該類。
  • applicationDefaultJvmArgs設(shè)置為-Dapp.port=8080 ,這也是從gradle本地運(yùn)行的必要條件。 這樣,我們設(shè)置了要綁定Service端口。
  • jar.archiveName是用于設(shè)置生成的.jar名稱的設(shè)置。 沒有它,則取決于項(xiàng)目目錄名稱。

您可以通過發(fā)出gradlew run (確保gradlew文件是可執(zhí)行文件)來運(yùn)行應(yīng)用程序。 當(dāng)它運(yùn)行時(shí),您可以將瀏覽器指向http:// localhost:8080,然后應(yīng)該看到“向噴霧罐上的噴霧路由問好!” 沒什么,對不起。

也有“ cb”任務(wù)定義為gradle。 如果發(fā)出gradlew cb ,它將構(gòu)建zip文件,其所有依賴項(xiàng).jars和szjug-sprayapp-1.0.jar位于其根目錄中。 對于CloudBees獨(dú)立應(yīng)用程序,此布局是必需的。

部署到CloudBees

首先,您需要在CloudBees上創(chuàng)建一個(gè)帳戶。 如果有的話,請下載CloudBees SDK –這樣您就可以從命令行運(yùn)行命令。 在Mac上,我更喜歡brew install ,但是您可以自由選擇方式。

安裝后,運(yùn)行bees命令。 首次運(yùn)行時(shí),它會(huì)詢問您的登錄名/密碼,因此您不需要每次使用bees時(shí)都提供它。

生成.zip,我們將其部署到云中。 進(jìn)入應(yīng)用程序目錄( szjug-sprayapp )并發(fā)出gradlew cb命令。 該命令不僅創(chuàng)建.zip文件,還打印.jars列表,這些列表對于作為類路徑傳遞給bees命令很有用。

使用從szjug-sprayapp目錄運(yùn)行的以下命令部署應(yīng)用程序:

bees app:deploy -a spray-can -t java -R class=pl.szjug.sprayapp.Boot -R classpath=spray-can-1.3.1.jar:spray-routing-1.3.1.jar:spray-testkit-1.3.1.jar:akka-actor_2.10-2.3.2.jar:spray-io-1.3.1.jar:spray-http-1.3.1.jar:spray-util-1.3.1.jar:scala-library-2.10.3.jar:spray-httpx-1.3.1.jar:shapeless_2.10-1.2.4.jar:akka-testkit_2.10-2.3.0.jar:config-1.2.0.jar:parboiled-scala_2.10-1.1.6.jar:mimepull-1.9.4.jar:parboiled-core-1.1.6.jar:szjug-sprayapp-1.0.jar build/distributions/szjug-sprayapp-1.0.zip

這里是可讀性的縮寫版本:

bees app:deploy -a spray-can -t java -R class=pl.szjug.sprayapp.Boot -R classpath=...:szjug-sprayapp-1.0.jar build/distributions/szjug-sprayapp-1.0.zip

spray-can是應(yīng)用程序名稱, -t java是應(yīng)用程序類型。 -R是CloudBees屬性,例如要運(yùn)行的類和要使用的類路徑。 當(dāng)gradle運(yùn)行cb任務(wù)時(shí),會(huì)很好地打印classpath的文件,因此您只需要復(fù)制和粘貼即可。

就是這樣! 我們的應(yīng)用程序正在CloudBees服務(wù)器上運(yùn)行。 可從CloudBees控制臺的URL訪問。

使用CloudBees服務(wù)

該應(yīng)用程序已部署在CloudBees上,僅此而已? 正如我提到的,我們也可以使用git倉庫和Jenkins。 讓我們現(xiàn)在就開始做吧。

倉庫(Git)

在您的CloudBees帳戶上創(chuàng)建新的git存儲(chǔ)庫。 選擇左側(cè)的“存儲(chǔ)庫”,“添加存儲(chǔ)庫”……這非常簡單。

將其命名為“ szjug-app-repo”,并記住它應(yīng)該是Git。

接下來,將此存儲(chǔ)庫添加為本地git存儲(chǔ)庫的遠(yuǎn)程存儲(chǔ)庫。 在CloudBees控制臺的存儲(chǔ)庫頁面上,有一個(gè)非常有用的關(guān)于如何執(zhí)行的便覽表。

首先添加git遠(yuǎn)程存儲(chǔ)庫。 命名為cb

git remote add cb ssh://git@git.cloudbees.com/pawelstawicki/szjug-app-repo.git

然后將您的提交推送到此處:

git push cb master

現(xiàn)在,您在CloudBees上有了代碼。

CI構(gòu)建服務(wù)器(Jenkins)

現(xiàn)在該配置在CI服務(wù)器上構(gòu)建的應(yīng)用程序了。 轉(zhuǎn)到“建筑物”。 這就是詹金斯的住所。 創(chuàng)建新的“自由式”工作。

將git存儲(chǔ)庫設(shè)置為工作,以便Jenkins檢出始終為最新代碼版本。 您將需要存儲(chǔ)庫URL。 您可以從“回購”頁面上獲取它。

在此處設(shè)置URL:

接下來要設(shè)置的是gradle任務(wù)。 添加類型為“調(diào)用gradle腳本”的下一個(gè)構(gòu)建步驟。 選擇“使用Gradle包裝器” –這樣,您可以使用項(xiàng)目隨附的gradle版本。 將“ cb”設(shè)置為要運(yùn)行的gradle任務(wù)。

好了,這就是構(gòu)建應(yīng)用程序所需的全部。 但是我們要部署它,不是嗎? 添加構(gòu)建后操作“部署應(yīng)用程序”。 輸入應(yīng)用ID( spray-can在我們的例子中,區(qū)域會(huì)自動(dòng)改變)。 這樣,我們就告訴Jenkins 在哪里部署。 它還需要知道要部署什么 。 輸入build/distributions/szjug-app-job-*.zip作為“應(yīng)用程序文件”。

由于您是通過命令行較早地部署應(yīng)用程序的,因此像應(yīng)用程序類型,主類,類路徑等設(shè)置已經(jīng)存在,您無需再次提供它。

保留每個(gè)構(gòu)建中的zip文件可能也很有用,因此我們可以將其存檔。 只需添加構(gòu)建后操作“存檔工件”并設(shè)置相同的zip文件即可。

好的,這就是在Jenkins上進(jìn)行構(gòu)建配置的全部內(nèi)容。 現(xiàn)在,您可以單擊“立即構(gòu)建”鏈接,并且應(yīng)該將構(gòu)建添加到隊(duì)列中。 完成后,您可以查看日志,狀態(tài)等。但是更重要的是,應(yīng)將應(yīng)用程序部署到全世界并可以訪問。 現(xiàn)在,您可以更改其中的某些內(nèi)容,點(diǎn)擊“立即構(gòu)建”,完成后檢查是否應(yīng)用了更改。

測驗(yàn)

可能您還注意到有附加的測試。 您可以通過gradlew test運(yùn)行它。 它的specs2測試,用特質(zhì)MyService ,所以我們有機(jī)會(huì)獲得myRoute ,并Specs2RouteTest所以我們有機(jī)會(huì)獲得spray.io檢測設(shè)施。

@RunWith(classOf[JUnitRunner])是在gradle中運(yùn)行測試所必需的。

現(xiàn)在,當(dāng)我們進(jìn)行測試時(shí),我們希望看到測試結(jié)果。 這是詹金斯的另一個(gè)構(gòu)建后步驟。 按“添加構(gòu)建后操作”->“發(fā)布JUnit測試結(jié)果報(bào)告”。

Gradle不會(huì)將測試結(jié)果放在maven所在的地方,因此您需要指定報(bào)告文件的位置。

完成后,下一個(gè)版本應(yīng)顯示測試結(jié)果。

觸發(fā)構(gòu)建作業(yè)

現(xiàn)在,您可以進(jìn)行構(gòu)建作業(yè),以構(gòu)建,測試和部署應(yīng)用程序。 但是,此構(gòu)建僅在您手動(dòng)運(yùn)行時(shí)才能運(yùn)行。 讓我們每天運(yùn)行一次,并將每一次更改推送到存儲(chǔ)庫之后。

摘要

因此,現(xiàn)在您擁有開發(fā)應(yīng)用程序所需的一切。 Git存儲(chǔ)庫,持續(xù)集成構(gòu)建系統(tǒng)以及用于將應(yīng)用程序部署到(實(shí)際上也是連續(xù)地)的基礎(chǔ)架構(gòu)。

想想您自己的應(yīng)用程序,……開心地發(fā)展!

翻譯自: https://www.javacodegeeks.com/2014/07/develop-test-and-deploy-standalone-apps-on-cloudbees.html

總結(jié)

以上是生活随笔為你收集整理的在CloudBees上开发,测试和部署独立应用程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。