Maven安装文件在GitLab / Docker中无效:“无法parsing项目的依赖关系”

我试图在Docker中使用Maven在GitLab服务器上构build我的Java项目。 因为我使用第三方jar,我使用install-file插件在本地安装。 这在我的本地机器上似乎是成功的,就像在Docker上一样:

$ 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] ------------------------------------------------------------------------ 

但在Docker上,我得到了这个错误,这在我的本地机器上是不存在的:

 $ 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] 

我真的不明白这里有什么问题。 我在路上错过了什么,环境variables? 这应该是一些小事,因为我在本地做同样的事情。

帮助非常感谢!

编辑

我使用这个Docker 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

 <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> 

Localy

使用mvn install:install-file安装第三方库将默认安装在/.m2/repository中。 然后mvn clean install将从默认存储库,即/.m2/repository中select他们。

在docker集装箱

使用mvn install:install-file第三方库将按照settings-docker.xml中的定义将它们安装在/usr/share/maven/ref/repository (容器内)中。 然后, mvn clean install将从/usr/share/maven/ref/repositoryselect它们。

问题是,maven正在寻找在/builds/gitlab/myProject-groep/myProject/lib pom文件中定义的/builds/gitlab/myProject-groep/myProject/lib依赖项,但是这个目录没有暴露给docker容器。

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

从pom文件中删除存储库部分应该可以解决问题。