LoginSignup
0
0

More than 5 years have passed since last update.

Mavenのappassembler-maven-pluginでJAVA_HOMEを設定する方法

Posted at

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の設定が読み込める。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0