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に設定されています。そのようなの一つは:私はこの答えを受け入れることはありません
あなたは '$ HOME/.mavenrc'ファイルを設定したか、PATHに他のバージョンのjavaを持っていて、Maven(3.3.9)のより高度なバージョンを使うことをお勧めします。 .. – khmarbaise
私はMavenを更新することができない、またはJavaバージョンを削除することはできますが、mavenrcファイルをチェックします。問題は私がOpenShiftのPaaSにいることです。これは私にsudoのパスワードを与えません。理由はあります。 @khmarbaise – ArsenArsen
私はmavenrcファイルを持っていません@khmarbaise – ArsenArsen