В нашем скрипте bash мы запускаем команду sbt
. Я хочу поймать ошибку в случае, если sbt
не удалось, но не могу понять, как это сделать. Я попробовал следующие два подхода после поиска в Google:
Подход 1:
sbt ${assemblyCmd} |tee ${TARGET}/assembly.log
if [ "$?" -eq 0 ];
then echo "Build jar successfully"
else
echo "Failed to build jar"
exit 1
fi
Подход 2
if sbt ${assemblyCmd} |tee ${TARGET}/assembly.log
then echo "Build jar successfully"
else
echo "Failed to build jar"
exit 1
fi
Ни один из них не работает. Я вижу, что sbt
не удалось с сообщением об ошибке, но bash по-прежнему выводит Build jar successfully
:
[0m[[0m[0minfo[0m] [0m[0mCompiling 21 Scala sources to /opt/utility/spark-jobs/target/scala-2.10/classes ...[0m
[0m[[0m[31merror[0m] [0m[0m/opt/utility/spark-jobs/src/main/scala/com/st/spark/jobs/SubAudit.scala:130:3: type mismatch;[0m
[0m[[0m[31merror[0m] [0m[0m found : Unit[0m
[0m[[0m[31merror[0m] [0m[0m required: org.apache.spark.sql.DataFrame[0m
[0m[[0m[31merror[0m] [0m[0m }[0m
[0m[[0m[31merror[0m] [0m[0m ^[0m
[0m[[0m[31merror[0m] [0m[0mone error found[0m
[0m[[0m[31merror[0m] [0m[0m(SparkJobs / Compile / [31mcompileIncremental[0m) Compilation failed[0m
[0m[[0m[31merror[0m] [0m[0mTotal time: 16 s, completed Apr 11, 2019 5:28:26 PM[0m
Build jar successfully
sbt
не удалось при компиляции.