Я использую circleCI для непрерывной интеграции webapp, которая построена с помощью maven. Я хочу, чтобы maven использовала внешнюю библиотеку при запуске теста и построении на CircleCI.
Поскольку библиотека имеет только артефакт проекта для сестринского проекта в более крупном проекте родительского maven, я могу создать этот проект без каких-либо проблем в своей локальной среде, потому что я уже добавляю его как зависимость в моем pom.xml.
Я попытался добавить встроенный файл jar в M2_HOME вручную с помощью файла circle.yml и bash ниже.Как включить внешнюю библиотеку для maven на CircleCI
circle.yml:
#...
dependencies:
pre:
- sudo chmod a+x add_dependencies.sh
- ./add_dependencies.sh
#...
add_dependencies.sh:
sudo wget http://my.jar.file.url -O exteral_lib.jar --quiet
sudo mkdir -p ${HOME}/.m2/repository/com/group/artifact/1.0.0/
sudo cp -rl ./exteral_lib.jar ${HOME}/.m2/repository/com/group/artifact/1.0.0/exteral_lib.jar
sudo rm -f ./exteral_lib.jar
Но это не сработало.
Failed to create parent directories for tracking file,
Non-resolvable import POM: Could not transfer artifact
произошло, когда CircleCI пытается разрешить зависимости.
Как я могу решить эту проблему?
Привет, спасибо большое. Я попробовал ваше решение, и библиотека, похоже, была установлена, но при запуске моего модульного теста появилась ошибка java.lang.NoClassDefFoundError: com/google/gson/JsonIOException'. Gson используется в библиотеке и уже включен в файл pom.xml в качестве зависимости от области компиляции, поэтому я не могу выяснить причину возникновения этой ошибки. Я также попробовал maven-assembly-plugin, упомянутый здесь (http://stackoverflow.com/a/32170738/6279569), но не повезло. Пропустил ли я что-нибудь или библиотека не была установлена правильно? – choasia
О, это просто еще одна проблема и теперь решена. Спасибо за Ваш ответ! – choasia