このたび、3rdParty製のJarファイルを使う機会がありました。
使用条件としては、独自のwarやjarに格納せずに、クラスパスを通して使用すること。
つまり、サードパーティ製のjarを管理できるNexusなどは使えない!!
既存のwar内に取り込めないため、何とか苦労して使えることができるようになったので、メモしておきます。
開発環境
IDEはNetBeans。Mavenで管理していたので、まずはプロジェクト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。
こちらの記事を参考にさせていただきながら進めました。
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
以上、簡単ではありますが、現時点での解決策でした。
本来なら、もっと良い方法があるのでしょうが、今回はこの辺で妥協しておきます。