Я хочу построить проект maven, используя скрипт оболочки. Рассмотрим сценарий
В моем проекте у меня есть тест, такой как
public class MyTest{
@Before
public void setUp() {
String libPath = System.getenv("LIBRARY_PATH");
if (libPath == null || libPath.isEmpty()) {
logger.error(
"LIBRARY_PATH not found. Please set this env variable to denote the location of the binaries that need to be loaded");
throw new IllegalArgumentException(
"LIBRARY_PATH not found. Please set this env variable to denote the location of the binaries that need to be loaded");
}
logger.info("LIBRARY_PATH found. All the binaries will be loaded from here {}", libPath);
}
/*Some tests that depend on LIBRARY_PATH being set*/
}
Теперь у меня есть сценарий оболочки build_project
, который выполняет следующие действия:
#!/bin/bash -e
if [ -z $1 ] ; then
echo "Must provide LIBRARY_PATH"
exit 1
fi
source setup_work.sh $1
mvn clean install
а вот setup_work.sh
скрипт
#!/bin/bash -e
export LIBRARY_PATH=$PWD/$1
echo "LIBRARY_PATH is ${LIBRARY_PATH}"
# some other setup tasks specific to my project
наконец, все, что я делаю, это запускаю
build_project.sh /some/path/
и он прекрасно работает на Linux / Ubuntu
однако, он не работает в MAC OS. Я вижу
LIBRARY_PATH is workingDir/some/path/
/*
lots of maven messages
.
.
.
*/
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running my.project.package.MyTest
[ERROR] LIBRARY_PATH not found. Please set this env variable to denote the location of the binaries that need to be loaded
IllegalArgumentException
Проблема кроется в maven или MAC OS? Почему я не могу экспортировать переменную env из сценария оболочки?
Наконец, обратите внимание, что если я добавлю следующее в мой bash_profile
export LIBRARY_PATH=some/path/i/need
тогда это работает на MAC OS. Это приводит меня к мысли, что проблема заключается в MAC OS.
Что я делаю не так?