2017-01-31 15 views
1

私は、mavenで構築されたWebアプリケーションの継続的な統合にcircleCIを使用しています。私は、CircleCIでテストとビルドを実行するときに、外部ライブラリを使用するようにしたいと考えています。
ライブラリは大型の親のmavenプロジェクトに兄弟プロジェクトの成果物を持っているだけなので、私はすでにpom.xmlの依存関係として追加しているので、私のローカル環境に問題なくこのプロジェクトを構築できます。
下記のcircle.ymlとbashファイルを使用して、構築したjarファイルを手動でM2_HOMEに追加しようとしました。CircleCIにmaven用の外部ライブラリを含める方法

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

代わりにリポジトリにjarファイルをコピーするので、あなたはそれをインストールしようとすることができ:

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を試しましたが、運がうまくいきませんでした。[here](http://stackoverflow.com/a/32170738/6279569)ライブラリが正しくインストールされていない、またはライブラリが正しくインストールされていませんでしたか? – choasia

+0

ああ、ちょっと別の問題だし、今解決してしまった。ご回答有難うございます! – choasia

関連する問題