Таким образом, я, кажется, нашел решение, публикуя сообщения для всех, кто столкнется с этим в будущем.
Z3 для Java зависит от libz3java.so (или dylib в OSX).Я правильно указал на использование параметра конфигурации argLine плагина Surefire (слегка измененный сверху):
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20.1</version>
<configuration>
<argLine>-Djava.library.path=${project.basedir}/lib/</argLine>
</configuration>
</plugin>
ОДНАКО, двоичные файлы z3 полагаются на libgomp1
, который не устанавливается по умолчанию в среде Travis CI(или среда Atlassian Bamboo для работы в этой экосистеме).Очевидным решением является установка этой библиотеки путем добавления apt-get update install build-essential
до вызова mvn test
.
Кроме того, для удобства я также установил LD_LIBRARY_PATH=<path-to-z3-libs>
, который, по-видимому, необходим в Linux.
Получается travis.yml:
language: java
install:
- sudo apt-get update
- sudo apt-get install build-essential
- scripts/install-dependencies.sh
- mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V
script:
- export LD_LIBRARY_PATH="$TRAVIS_BUILD_DIR/lib/"
- mvn test -B