appassembler-maven-plugin
を使ってスクリプトを自動生成する際に、自動生成スクリプト内でJAVA_HOMEを設定できるようにしたのでメモ。
対応
まずは事前準備としてJAVA_HOMEのexport設定を書いたsettings.sh
を用意する。
settings.sh
export JAVA_HOME=/usr/java/jdk1.8.0_152
次に自動生成スクリプトからsettings.sh
を呼び出せるようにassemblerを設定する。
公式ドキュメントにenvironmentSetupFileName
というパラメータがいたのでこれを使う。
pom.xml
・・・ 中略 ・・・
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<goals>
<goal>assemble</goal>
</goals>
<phase>package</phase>
</execution>
</executions>
<configuration>
<programs>
<program>
<mainClass>com.fuga.hoge.SampleApp</mainClass>
<name>SampleApp</name>
</program>
</programs>
<binFileExtensions>
<unix>.sh</unix>
</binFileExtensions>
<environmentSetupFileName>settings.sh</environmentSetupFileName>
</configuration>
</plugin>
・・・ 以下略 ・・・
設定後にmvn package
すると自動生成されるSampleApp.sh
は以下のようになる。
SampleApp.sh
BASEDIR=`dirname $0`/..
BASEDIR=`(cd "$BASEDIR"; pwd)`
[ -f "$BASEDIR"/bin/settings.sh ] && . "$BASEDIR"/bin/settings.sh
・・・ 以下略 ・・・
これで最初に作成したsettings.sh
が自動生成スクリプトの冒頭で読み込まれるようになるので、ビルド後にsettings.sh
をbinディレクトリ配下にコピーするタスクを設定しておけば自動生成スクリプト内からJAVA_HOMEの設定が読み込める。