2016-10-14 11 views
1

私はこのスクリプトを使って私のプログラムを自動的に再構築してopenshiftで更新しています。私のスクリプトは以下の通りです:OpenShift Mavenは正しいJAVA_HOMEを使用していません

開始フック:

#!/bin/bash 
# The logic to start up your application should be put in this 
# script. The application will work only if it binds to 
# $OPENSHIFT_DIY_IP:8080 
source $OPENSHIFT_CARTRIDGE_SDK_BASH 

nohup /bin/bash $OPENSHIFT_REPO_DIR/diy/abot.sh > $OPENSHIFT_LOG_DIR/diy.log & 
client_result "Success!" 
exit 0 

ストップフック:、スクリプトは "デーモン化" されている

#!/bin/bash 
source $OPENSHIFT_CARTRIDGE_SDK_BASH 
PID=`cat $OPENSHIFT_DATA_DIR/abot.pid` 
echo PID: $PID 
if kill $PID 
then 
    exit 0 
else 
    client_result "App already stoped!" 
fi 

abot.sh、すべてのプロセスを実行します

#!/bin/bash 
cd $OPENSHIFT_DATA_DIR 
echo $$ > abot.pid 
JAVA_HOME=/etc/alternatives/java_sdk_1.8.0 
PATH=$JAVA_HOME/bin:$PATH 
javac -version 
while : 
do 
    if [ ! -d AbotDir ] 
    then 
     git clone https://github.com/ArsenArsen/ABot.git AbotDir 
    else 
     cd AbotDir 
     git pull 
     cd .. 
    fi 
    cd AbotDir 
    echo $JAVA_HOME \| $PATH 
    $JAVA_HOME/bin/javac -version 
    $JAVA_HOME/bin/java -version 
    mvn -version 
    mvn -e -Dmaven.repo.local=$OPENSHIFT_DATA_DIR/.m2/repository 
    cd .. 
    $JAVA_HOME/bin/java -jar AbotDir/target/ABot-jar-with-dependencies.jar -nl -t TOKEN 
    echo "" > $OPENSHIFT_LOG_DIR/diy.log 
done 

私は複数のテストを行っていますが、それらのすべては、mavenがJava7パスを使用しているという結論に至りました。 Java8に設定されています。そのようなの一つは:私はこの答えを受け入れることはありません valid XHTML

+0

あなたは '$ HOME/.mavenrc'ファイルを設定したか、PATHに他のバージョンのjavaを持っていて、Maven(3.3.9)のより高度なバージョンを使うことをお勧めします。 .. – khmarbaise

+0

私はMavenを更新することができない、またはJavaバージョンを削除することはできますが、mavenrcファイルをチェックします。問題は私がOpenShiftのPaaSにいることです。これは私にsudoのパスワードを与えません。理由はあります。 @khmarbaise – ArsenArsen

+0

私はmavenrcファイルを持っていません@khmarbaise – ArsenArsen

答えて

0

が、ここでは行く:

JAVA_HOME =の/ etc /代替/ java_sdk_1.8.0 /; MVN -versionにもたらされる$ JAVA_HOME エコー

mavenを独自のディレクトリにコピーして、起動スクリプトを編集してJava8の使用を強制することができます。私がこの答えを受け入れない理由は、それが非常にハッキーで無駄だからです。他の方法がない場合にのみ使用してください。これを行う方法を知っている人は、自由にお答えください。

関連する問題