MavenおよびWildflyを使用した自動アプリケーション展開

こんにちはHabr! WildFlyをMavenと友達にする方法についての短い記事から始めたいと思います。



Wildfly-これは、開発者向けの管理とAPIの両方の分野におけるJBoss AS7 / EAP6のブランド変更と開発です。 Wildflyは、Java SE 7を使用して構築されています。コアJava IDEと完全に統合されています。 記事からの短い引用



バージョン10に関する少しの公式情報





主なリリース機能





Mavenを使用したWildflyでの自動展開について説明し、同じコンテナでUIを起動することについて簡単に説明します。



3.3.9(maven 3.5.0を使用)以上のMavenバージョンを使用する必要があります。使用しない場合、Wildflyプラグインは機能しません。



現在使用しているWildflyのバージョンは10.1.0-Final、プラグインのバージョンは1.2.0.Alpha4です



ビルドするアプリケーションのPom.XMLで、Wildflyサーバーに接続するデータを登録する必要があります



例:



<plugin> <groupId>org.wildfly.plugins</groupId> <artifactId>wildfly-maven-plugin</artifactId> <configuration> <hostname>${wildfly-hostname}</hostname> <port>${wildfly-port}</port> <username>${wildfly-username}</username> <password>${wildfly-password}</password> <name>${wildfly-name}</name> </configuration> </plugin>
      
      





また、settings.xmlまたはpom.xmlの設定を1つ上のレベルにすることをお勧めします。 これにより、デプロイにプロファイルを使用できるようになります-ローカルデプロイ、製品へのデプロイ。



settings.xmlのプロファイル領域。



  <profile> <id>localhost</id> <properties> <wildfly-hostname>localhost</wildfly-hostname> <wildfly-port>9990</wildfly-port> <wildfly-username>admin</wildfly-username> <wildfly-password>admin</wildfly-password> <wildfly-name>core.war</wildfly-name> </properties> </profile> <profile> <id>dev</id> <properties> <wildfly-hostname>Prod_Server</wildfly-hostname> <wildfly-port>9990</wildfly-port> <wildfly-username>admin</wildfly-username> <wildfly-password>admin</wildfly-password> <wildfly-name>core-prod_vers.war</wildfly-name> </properties> </profile>
      
      





すべての設定後、mavenを使用して、コマンドラインから、IDEから、たとえばJenkins(mavenプラグイン)から、 mvn wildfly:deployを使用してwarをデプロイできます。mvnwildfly:undeployおよびmvn wildfly:redeploy forも使用できますそれぞれ削除と再開発。 プロファイル-Plocalhostを選択すると、localhostのIDを持つプロファイルの設定で開始できます。それに応じて-Pdevが販売用に起動します(設定内のすべてのデータはデフォルトまたは架空です)。



DeploymentsセクションのWildFlyコンソールで正しく構成されていれば、必要な戦争が発生します。



さらに、WildFlyではUIを実行できます。



WildFlyを構成してUIを起動します。



UI用に選択したディレクトリのWildFLyのルートにプロジェクトを配置します。

この例では、UIディレクトリを使用しました。



/PathToWildfly/standalone/configuration/standalone.xmlファイルで、行(検索を容易にするために、隣接する行を考慮した行)を追加する必要があります。



 <location name="/" handler="welcome-content"/> <location name="/UI/" handler="UI"/> <filter-ref name="server-header"/> <filter-ref name="x-powered-by-header"/>
      
      





 <handlers> <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/> <file name="UI" path="${jboss.home.dir}/UI/widget/build"/>
      
      





その後、WildFLyは自動的に変更を取得し、アプリケーションはlocalhost:8080 / UIで利用可能になります。



現時点では、コマンド./standalone.sh -b = 0.0.0.0 -bmanagement = 0.0.0.0を使用して起動が実行され、アプリケーションはLinux Oracle上で画面で実行されます。



使用中、2つの問題が特定されました。



  1. WildFLyの再起動が遅れ、localhostが長時間ドラッグされることがあります:9990-コンソール。
  2. Maven 3.3.9のJenkinsからredeployタグを使用して実行すると、メモリリークが発生し、アプリケーションは両方のバージョンのwarをアンインストールし、重複を宣誓します。 (常に再現されるとは限りません)


上記に加えて、約2か月間のこの束は問題を解決しませんでした。 この場合、Jenkinsはすべてをルールし、開始し、 mvn wildfly:undeploy mvn wildfly:deploy (再デプロイがうまくいかないため、この戦略を使用します)、組み立てられたUIをUIディレクトリに配信し、更新は夜間に行われ、飛行は正常です。



また、勝利ホストでの起動をテストしましたが、作業の違いに気付かず、すべてがまだ安定しています。



All Articles