skillup

技術ブログ

Java サーバー・ネットワーク

jenkinsのオートデプロイ

投稿日:2016年11月1日 更新日:

久々にJavaやりました。

やりたいこと

  1. 作成しているアプリはJavaServelet、アプリケーションサーバーはglassfish
  2. ローカルでgitでコミット→プッシュ
  3. これをトリガーにしてjenkinsでビルド→デプロイ(デプロイするサーバーは別)

git→jenkins連携はこちらに解説してます。
jenkins構築
Git→Jenkinsの連携
Git→Jenkinsの連携 その2

ハマりポイント

Antでのjobの設定

いままでほとんどmavenだったので・・・

まずビルドファイルはディフォルトでbuild.xmlなら何も書かなくてOKです。下手に書くとファイルがないと怒られます。

Jenkins使い方メモ

jenkinsでビルドできない

Javaだと頻繁にありますがIDEだとOK(ライブラリが内包されているので)だけど、別環境だとダメってパターン。ほとんどがライブラリ関係です。

出たエラーは次の2箇所

Jenkinsのjobのビルド→Antの呼び出しでクラスパスをjenkinsの管理画面でAntのプロパティとして設定してあげればOK

j2ee.server.home=/usr/local/glassfish4/glassfish/ で解決

j2ee.server.home missing during NetBean project build

org-netbeans-modules-java-j2seproject-copylibstask.jarが入っていないためにエラーが起こる。(ローカルだとnetbeansには入っている)

このjarファイル自体をWEB-INFの中に入れてあげて

とパスを先ほどと同様Antのプロパティに設定してあげればOK

The libs.CopyLibs.classpath property is not set up

jenkinsのオートデプロイ

これに関しては↓
glassfishへのデプロイ
今回はできたwarファイルをSSHでjenkinsサーバーからtestサーバーに運んであげる

SSHでの運び方

※最初はアプリをビルドさせる処理と送信のジョブを別々にしたほうが良いかも。

  1. SSH2Easy Pluginというプラグインをインストール
  2. あとはJenkinsの管理画面→システムの設定→Server Group Centerにhostやuserなど必要な情報を入れる
  3. 1度保存後、ServerListが保存できるのでここでServerGroupを選択し、Servernameをきめてあげ、IPを入れる
  4. プロジェクト選択画面に遷移し、ビルドの手順の追加よりRemoteSFTPUPLOADを選択、さきほど入力したものが選ばれているはず
  5. localFilePath 送る側のファイルパス remoteLocation 送られる側のファイルパス fileName ファイル名をリネームしたいとき。リネームしなくていい場合は空

最初はただのテキストファイルを送るといいかも。

testサーバーでのデプロイ

warファイルはそのままglassfishディレクトリのautodeployの中に入れてあげれば自動でWEBからアクセスできるように展開されている。

The libs.CopyLibs.classpath property is not set up

jenkinsでは「SSHでの運び方」で記述したようにServer Group Centerを設定してあげればSSHで対象のサーバーにログインして操作ができます。

ビルドの手順の追加より「Remote Shell」を追加し、Serverを選んであげて、Shellの中にコマンドを記述してあげればOKです。

これで意図したパスにファイルをおいてあげればOKです。

-Java, サーバー・ネットワーク
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

vagrant 複数ホストを起動

ansbileを使おうと思ったんですが、ansibleはホスト1→ホスト2という構成になっているため、2台のホストがないと使えません。 MACであればローカル環境からいけますし、Windowsでもcy …

no image

JavaEEでのURLマッピング

Contents1 URLマッピング1.1 prettyfaces1.2 導入方法1.2.1 pom.xmlの設定1.2.2 pretty-config.xmlの設定1.3 ManagedBeanでの …

no image

URLのリライトに関して

laravelのアプリをサブディレクトリ(notサブドメイン)に配置しなくてはならないケースがあり、.htaccessと格闘したのでメモを。 このパターンはハマりが多いですね・・・ http://sk …

no image

JSPでのインクルード

JSPで社内アプリを作る機会があったので、メモ。 基本的なこともまだわかっていないんですが、とりあえずでてきたものから紹介してきます。 インクルードから。 ヘッダー、フッターみたいな別々に分けたりする …

no image

journald

CentOS7では従来のsyslogデーモンと並行してjournaldというログ管理サービスがあります。 Contents1 コマンド一覧2 参考図書・リンク コマンド一覧 [crayon-651cd …

アーカイブ