2016-11-10 15 views
2

MockをDockerで使用してGitLabサーバーにJavaプロジェクトを構築しようとしています。サードパーティ製のjarファイルを使用しているため、install-fileプラグインを使用してローカルにインストールします。これは/ドッカー上のように、私のローカルマシン上の両方のsuccesfullのようだ:GitLab/DockerでMavenインストールファイルが有効でない:「プロジェクトの依存関係を解決できませんでした」

$ mvn install:install-file -Dfile=lib/customArtifact-1.0.jar -DgroupId=customArtifact -DartifactId=customArtifact -Dversion=1.0 -Dpackaging=jar 
[INFO] Scanning for projects... 
[INFO] 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building myProject 1.0-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-install-plugin:2.4:install-file (default-cli) @ myProject --- 
[INFO] Installing /builds/gitlab/myProject-groep/myProject/lib/customArtifact-1.0.jar to /root/.m2/repository/customArtifact/customArtifact/1.0/customArtifact-1.0.jar 
[INFO] Installing /tmp/mvninstall2011198835315637645.pom to /root/.m2/repository/customArtifact/customArtifact/1.0/customArtifact-1.0.pom 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 1.191 s 
[INFO] Finished at: 2016-11-10T07:35:47+00:00 
[INFO] Final Memory: 8M/144M 
[INFO] ------------------------------------------------------------------------ 

しかし、私は私のローカルマシン上に存在しないこのエラー、取得ドッカー上:

$ mvn --batch-mode --quiet clean install -DskipTests 
[ERROR] Failed to execute goal on project myProject: Could not resolve 
dependencies for project groupId:myProject:jar:1.0-SNAPSHOT: Failed to 
collect dependencies at customArtifact:customArtifact:jar:1.0: Failed 
to read artifact descriptor for customArtifact:customArtifact:jar:1.0: 
    Could not transfer artifact customArtifact:customArtifact:pom:1.0 
     from/to myProject_dependencies (/builds/gitlab/myProject-groep/ 
     myProject/lib): Cannot access /builds/gitlab/myProject-groep/ 
     myProject/lib with type default using the available connector 
     factories: BasicRepositoryConnectorFactory: Cannot access 
     /builds/gitlab/myProject-groep/myProject/lib using the registered 
     transporter factories: WagonTransporterFactory: Unsupported 
     transport protocol -> [Help 1] 

私は本当にドンここで何が間違っているかを知りません。私は私の道、環境変数に何かを見逃していますか?私は文字通り同じことをローカルでやっているので、それはマイナーなものでなければなりません。

大変助かりました!

EDIT

私はこのドッカーmaven:3-jdk-7を使用しています、

FROM openjdk:7-jdk 

    ARG MAVEN_VERSION=3.3.9 
    ARG USER_HOME_DIR="/root" 

    RUN mkdir -p /usr/share/maven /usr/share/maven/ref \ 
    && curl -fsSL http://apache.osuosl.org/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz \ 
     | tar -xzC /usr/share/maven --strip-components=1 \ 
    && ln -s /usr/share/maven/bin/mvn /usr/bin/mvn 

    ENV MAVEN_HOME /usr/share/maven 
    ENV MAVEN_CONFIG "$USER_HOME_DIR/.m2" 

    COPY mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh 
    COPY settings-docker.xml /usr/share/maven/ref/ 

    VOLUME "$USER_HOME_DIR/.m2" 

    ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"] 
    CMD ["mvn"]which is found here 

設定-docker.xmlとlocalY

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 
      https://maven.apache.org/xsd/settings-1.0.0.xsd"> 
    <localRepository>/usr/share/maven/ref/repository</localRepository> 
</settings> 
+0

Mavenのバージョンは何ですか? – Tunaki

+0

バージョン:Apache Maven 3.3.9 –

+0

あなたは 'settings.xml'と' Dockerfile'をどうぞ共有できますか?間違ったパスから依存関係を読み込もうとしているか、ボリュームがドッカーに公開されていないようです。 –

答えて

1

mvn install:install-fileを使用しているすべてのサードパーティライブラリは、デフォルトで/.m2/repositoryにそれらをインストールします。 mvn clean installはデフォルトのリポジトリ、つまり/.m2/repositoryからそれらを選択します。設定-docker.xmlで定義されているドッカコンテナ(コンテナ内)/usr/share/maven/ref/repositoryでそれらをインストールしますmvn install:install-fileを使用してthridパーティのライブラリをインストールする

。次にmvn clean install/usr/share/maven/ref/repositoryからそれらを選ぶでしょう。

問題は、mavenがpomファイルに定義されているように/builds/gitlab/myProject-groep/myProject/libの依存関係を探していますが、このディレクトリはドッカーコンテナに公開されていないということです。

<repositories> 
    <repository> 
     <id>myProject_dependencies</id> 
     <url>${basedir}/lib/</url> 
    </repository> 
</repositories> 

pomファイルからリポジトリセクションを削除すると問題が解決するはずです。

+0

これは問題を解決します。 –

関連する問題