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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hollowjars,部署扫描程序以及Wildfly群体为何很棒

發布時間:2023/12/3 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hollowjars,部署扫描程序以及Wildfly群体为何很棒 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在上一篇文章中,我描述了如何使用OpenLiberty和maven作為獨立服務器或maven構建的一部分來啟動服務器,以及如何創建fatjar包。

在這篇文章中,我正在研究如何使用Wildfly群。 我仍在嘗試使MicroProfile在Wildfly full上運行,因此,到目前為止,該示例與OpenLiberty示例的工作方式不同。

我使用的是同一個示例項目 ,其中包含更多的maven配置文件以運行不同的部署選項。

(請參閱https://github.com/phillip-kruger/javaee-servers-parent )

示例項目

我想包含一些MicroProfile功能,因此這是一個“每日報價”應用程序,而不是基本的“ Hello world”。 我的應用程序使用工廠加載報價提供程序(目前只有一個)。 當前提供者從forismatic.com獲得報價。 我使用MicroProfile Configuration API配置諸如URL和要加載的提供程序之類的東西。 我使用MicroProfile Fault Tolerance API來確保在提供程序源不可用時我們能夠生存。

您可以在此處獲取完整的示例項目: https : //github.com/phillip-kruger/quote-service

作為Maven構建的一部分運行

您可以使用wildfly-swarm-plugin運行( mvn wildfly-swarm:run )作為構建一部分的wildfly swarm實例。 該插件將執行“分數檢測”,這意味著它將查看您需要的應??用服務器的哪些部分,并且僅創建包含這些分數的部署。 因此,您仍然可以將傘狀API包含在依賴關系中,并針對這些依賴關系進行編碼,但是在部署時,您將獲得正確的大小分布。 好酷!

<dependencies><!-- Java EE --><dependency><groupId>javax</groupId><artifactId>javaee-api</artifactId><version>${java-ee.version}</version><scope>provided</scope></dependency><!-- MicroProfile --><dependency><groupId>org.eclipse.microprofile</groupId><artifactId>microprofile</artifactId><version>${microProfile.version}</version><type>pom</type><scope>provided</scope></dependency></dependencies>

在包含引用webjars的 HTML文件時,我總是使用過濾,但是似乎插件在應用過濾器之前使用了原始源文件,因此我不得不尋找一種替代方法。

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><version>3.0.0</version><configuration><webResources><resource><directory>${basedir}/src/main/webapp</directory><filtering>true</filtering><includes><include>**/*.css</include><include>**/*.jsp</include></includes></resource></webResources></configuration></plugin>

在此示例中,我使用語義UI來構建顯示當天報價的網頁:

我將maven屬性用于HTML中CSS和JS版本,并且在構建時需要用實際值替換它們:

<link rel="stylesheet" type="text/css" href="webjars/semantic-ui/${semantic-ui.version}/dist/semantic.min.css"><script type="text/javascript" src="webjars/jquery/${jquery.version}/dist/jquery.min.js" /><script type="text/javascript" src="webjars/semantic-ui/${semantic-ui.version}/dist/semantic.min.js"></script>

作為替代,我使用包目標,然后使用exec-maven-plugin運行jar。

這也使我可以傳遞standalone.xml進行任何其他配置:

<plugin><groupId>org.wildfly.swarm</groupId><artifactId>wildfly-swarm-plugin</artifactId><executions><execution><id>1</id><phase>pre-integration-test</phase><goals><goal>package</goal></goals></execution></executions></plugin><plugin><groupId>org.codehaus.mojo</groupId><artifactId>exec-maven-plugin</artifactId><version>1.6.0</version><executions><execution><id>1</id><phase>post-integration-test</phase><goals><goal>exec</goal></goals></execution></executions><configuration><executable>java</executable><arguments><argument>-jar</argument><argument>${project.build.directory}${file.separator}${project.artifactId}-swarm.jar</argument><argument>-c</argument><argument>${project.build.directory}${file.separator}standalone.xml</argument></arguments></configuration></plugin>

在我的情況下, standalone.xml僅包含日志記錄配置,但是您現在可以包括任何其他配置。

<server xmlns="urn:jboss:domain:4.0"><profile><subsystem xmlns="urn:jboss:domain:logging:3.0"><periodic-rotating-file-handler name="FILE" autoflush="true"><file path="${wildfly-swarm.logfile}"/><suffix value=".yyyy-MM-dd"/><append value="true"/></periodic-rotating-file-handler><root-logger><level name="INFO"/><handlers><handler name="FILE"/></handlers></root-logger><logger category="${log.name}"><level name="${log.level}"/></logger></subsystem></profile></server>

因此,在qoute-service示例中,您可以執行此操作(與OpenLiberty示例相同):

mvn clean install -P wildfly-swarm-fatjar

Hollowjar

Wildfly群可讓您創建空心罐。 (請參閱本文 )也就是說,沒有應用程序的胖子,僅僅是應用程序服務器的一部分。 然后,您可以將應用程序作為命令行輸入提供:

java -jar myapp-hollow-swarm.jar myapp.war

因此,如果我們能找到一種方法來重新加載應用程序部分,那么我們可以擁有與完整應用程序相同的開發模型(熱部署)。

部署掃描器

Wildfly群有一個稱為Deployment Scanner的部分,您可以將其包含在您的發行版中(胖或空心)。

分數檢測將不會自動檢測到此(因為在代碼中沒有對此的引用)。 幸運的是,您可以在Maven中定義其他分數:

<plugin><groupId>org.wildfly.swarm</groupId><artifactId>wildfly-swarm-plugin</artifactId><executions><execution><phase>pre-integration-test</phase><goals><goal>package</goal></goals></execution></executions><configuration><hollow>true</hollow><additionalFractions>scanner</additionalFractions></configuration></plugin>

為了使掃描程序工作,將其添加到standalone.xml

<subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0"><deployment-scanner scan-enabled="true"scan-interval="5000" path="/tmp/quote-service/wildfly-swarm/deployments" name="quote-service" auto-deploy-xml="false"/> </subsystem>

如果現在將應用程序的更新版本移至定義的路徑,則可以進行熱部署。

在引用示例中,這意味著您可以:

  • mvn clean install -P wildfly-swarm-start(啟動服務器)
  • mvn clean install -P wildfly-swarm-deploy(熱部署到正在運行的服務器)
  • mvn clean install -P wildfly-swarm-stop(停止正在運行的服務器)

您還可以創建一個胖子:

  • mvn全新安裝-P軟件包

節約時間

建立和啟動胖子大約需要10秒鐘 。 熱部署大約需要2.7秒 。
這節省了大量時間,從而使更改之間的周轉時間更快。

翻譯自: https://www.javacodegeeks.com/2018/01/hollowjars-deployment-scanner-wildfly-swarm-cool.html

總結

以上是生活随笔為你收集整理的Hollowjars,部署扫描程序以及Wildfly群体为何很棒的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。