2017-01-31 5 views
1

Я использую 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 пытается разрешить зависимости.

Как я могу решить эту проблему?

ответ

1

Вместо того, чтобы копировать баночку в хранилище, вы можете попробовать установить его:

mvn install:install-file -DgroupId=<your group id> -DartifactId=<your artifact id> -Dversion=<your version id> -Dpackaging=jar -Dfile=<your jar filename> -DgeneratePom=true 

Пример:

mvn install:install-file -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc -Dversion=4.2 -Dpackaging=jar -Dfile=sqljdbc.jar -DgeneratePom=true 
+0

Привет, спасибо большое. Я попробовал ваше решение, и библиотека, похоже, была установлена, но при запуске моего модульного теста появилась ошибка java.lang.NoClassDefFoundError: com/google/gson/JsonIOException'. Gson используется в библиотеке и уже включен в файл pom.xml в качестве зависимости от области компиляции, поэтому я не могу выяснить причину возникновения этой ошибки. Я также попробовал maven-assembly-plugin, упомянутый здесь (http://stackoverflow.com/a/32170738/6279569), но не повезло. Пропустил ли я что-нибудь или библиотека не была установлена ​​правильно? – choasia

+0

О, это просто еще одна проблема и теперь решена. Спасибо за Ваш ответ! – choasia

Смежные вопросы