タイガー!タイガー!じれったいぞー!(SE編)

AS400, Java, JavaEE, JSF等の開発、習慣など。日々の気づきをまとめたブログ(備忘録)

【Payara】3rdParty製のJarファイルを外部参照して使用する

このたび、3rdParty製のJarファイルを使う機会がありました。

使用条件としては、独自のwarやjarに格納せずに、クラスパスを通して使用すること。

つまり、サードパーティ製のjarを管理できるNexusなどは使えない!!

既存のwar内に取り込めないため、何とか苦労して使えることができるようになったので、メモしておきます。

開発環境

IDENetBeansMavenで管理していたので、まずはプロジェクトRootディレクトリに「lib」フォルダを作成し、そこに 3rdParty製のJarファイルを配置しました。

pom.xmlでは、次のように記述すれば、IDE内ではエラーにならずに新しいクラスを参照が可能になりました。

<dependency>
    <groupId>xxxxxxxx</groupId>
    <artifactId>xxxxxxxx</artifactId>
    <version>1.0.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/xxxxxxxx.jar</systemPath>
</dependency>

AP Server環境

AP Serverは、Payara。

こちらの記事を参考にさせていただきながら進めました。

hondou.homedns.org

jarファイルを「${GS_HOME}/glassfish/domains/domain1/lib」に配備し、
必要な関連プロパティファイルを「${GS_HOME}/glassfish/domains/domain1/lib/classes」に配備して、準備OKです!

なお、localhost環境、テスト機、本番機すべてに適用させました。

Jenkins環境

最後にJenkins環境も。

手動対応というのも気が引けますが、時間を優先しました。

ジョブごとに、「lib/*.jar」を配備すれば、自動ビルド、デプロイも無事成功でした。

# cd /var/lib/jenkins/workspace/PipelineName
# mkdir lib
# cd lib
# cp /tmp/xxxxxxxx.jar .
# chown jenkins:jenkins xxxxxxxx.jar

以上、簡単ではありますが、現時点での解決策でした。

本来なら、もっと良い方法があるのでしょうが、今回はこの辺で妥協しておきます。