JenkinsでJBossAS7にデプロイしようと思ったので
8からWildFlyって名前になるJBossASさんですが、Jenkinsから7.1.1へのデプロイをしようと思ったら、なんかDeployPluginとか5.x以降は無視ってるっぽいのでどうしたもんかなと。
この手の「どうとでもなるだろー」と思うものは大抵どうとでもなるんですが、メモメモ。
やったこと
JBossAS7の入手と起動
今回は 7.1.1.Final の zip をダウンロード。
何も考えず解凍して bin/standalone.sh を実行。まで。
% ./standalone.sh ========================================================================= JBoss Bootstrap Environment # 中略 20:52:08,884 INFO [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://127.0.0.1:9990 20:52:08,885 INFO [org.jboss.as] (Controller Boot Thread) JBAS015874: JBoss AS 7.1.1.Final "Brontes" started in 4430ms - Started 133 of 208 services (74 services are passive or on-demand)
さくっと上がるのはいいね。「サーバー起動する」って言うと大層な感じがするけど、全然。
デプロイするものを作る
なんか作ります。何でもいいんですが、適当にarchetypeから選ぶ。jbossでフィルタリングしたら出てきた jboss-javaee6-webapp を使うことにしました。作ると言いつつ作ってません。
mvn archetype:generate -DinteractiveMode=false -DarchetypeGroupId=org.jboss.spec.archetypes -DarchetypeArtifactId=jboss-javaee6-webapp -DgroupId=net.hogedriven -DartifactId=jboss-javaee6-webapp
暫くまって、上のコマンドのままなら jboss-javaee6-webapp ってディレクトリが出来るはず。
Mavenでのデプロイ
で、上記で作ったpom.xmlには JBoss AS7 Deployment Plugin も入ってるのでこのままデプロイできそうな勢いですが、そのままやると 7.0.2.Final になってるのでダメぽでした。とりあえずサーバーに合わせて 7.1.1.Final にしたら動いたし、新しい物好きを発揮して 7.4.Final にしても動きました。
% git diff (git)-[master] diff --git a/pom.xml b/pom.xml index e5ca465..eb0f6a4 100644 --- a/pom.xml +++ b/pom.xml @@ -170,7 +170,7 @@ <plugin> <groupId>org.jboss.as.plugins</groupId> <artifactId>jboss-as-maven-plugin</artifactId> - <version>7.0.2.Final</version> + <version>7.1.1.Final</version> </plugin> </plugins> </build>
と言うことでmavenからのデプロイは普通にこんな感じになります。
mvn package jboss-as:deploy mvn jboss-as:undeploy
JBossAS7の動いている端末以外からデプロイする時はconfigをアレコレすればいけると思いますので、適当にアレコレするといいと思います。
コマンドからデプロイ
以上。ってのもアレなんで……でも以上なんだよなぁ……。
動画との違いは 7.0→7.1 で jboss-admin.sh が jboss-cli.sh に名前変わってる、くらい?
あと jboss-cli.sh を直接実行すると対話モードになるのですが、これはJenkinsとかでやるには微妙なので一行でやりたいんだけど、これも適当に jboss-cli.sh で help とか叩けば出てくるのを見ながらとかやればいけます。こんな感じ?
jboss-cli.sh --connect --command="deploy target/jboss-javaee6-webapp.war" jboss-cli.sh --connect --command="undeploy jboss-javaee6-webapp.war"
そろそろ読もうと思ってるもの
……CLIのGUIってなんやね。GradleもGUIあるんだけど、こういうの流行りなのでしょうか?