技術メモブログ

技術ネタの備忘録的なブログ。技術ネタ以外にも気になったことをつらつら書きます

Eclipse で Glassfish を起動したとき、デプロイされた lib フォルダに jar が入らない -恒久解決編-

今回の騒動、実は割りと起こってる方がいるよう

しかもちゃんと恒久的な対策もあるようです

 

前回の解決編で参考にさせて頂いたサイト主のサワダさんからコメントを頂き、その通りやったらデプロイ先の lib フォルダに jar がコピーされるようになった

※ただし依存関係として記載しているのは、全部コピーされる

 更にいうと、「WebContent/WEB-INF/lib」以下にはコピーされない

 

結果としては .classpath ファイルの中身、Gradle 依存関係の部分を以下のように修正

f:id:mtkj:20150607121239p:plain

 

こいつはなんなんだと思って調べてみる

そしたらこのような記事を書かれている方が

ハマっている内容は同じようなもので、サーバーで実行したらエラーになるってもの

「Deployment Assembly」ってのを探したら確かにあった

※ .classpath を修正した後の画面

f:id:mtkj:20150607123018p:plain

ウィンドウの内容から考えるに、「ソース」列の物を、「デプロイ・パス」列のパスに対して出力を行うものなんだろうなと

この状態で、 「Java のビルド・パス」のライブラリータブ、「Gradle 依存関係」のツリーを開くと「公開/エクスポート依存関係」って項目が追加されている

 

試しにさっき .classpath に追加した記述を消してみたら

f:id:mtkj:20150607123451p:plain

「Gradle 依存関係」の項目が消えた

元々の状態がこれであり、デプロイ時における依存関係の出力先が何も無いので、そりゃ何も入らないわけだ

自動的にはやってくれないみたいですね・・・

 

「Gradle 依存関係」の項目を追加する場合は、

「追加」->「Java ビルド・パス・エントリー」->「Gradle 依存関係」->「完了ボタン」とすればOK

.classpath ファイルにも、手動で記載した内容が追記されてました

 

余談だけど、どこかのプロジェクトで上記の設定をすれば、他の Gradle プロジェクトでも適用されているっぽいです

(少なくとも自分の環境ではそうでした)