AWS CodeBuild无法访问GitHub上的Maven存储库

时间:2018-02-26 09:04:16

标签: maven amazon-web-services aws-codebuild mvn-repo

我在AWS CodeBuild上遇到了一些麻烦。我们正在Github(https://github.com/ibissource/mvn-repo)上托管ibis适配器框架作为Maven存储库。

我正在使用框架作为我正在处理的项目的依赖项。在我的pom.xml文件中,我设置了version属性和存储库/依赖项。

当我在本地运行Maven构建时,它可以轻松找到依赖项(它正在发出关于无法传输元数据的警告),但它能够毫无问题地构建。

编辑: 它能够构建本地,因为我将文件缓存在我的.m2存储库中。重命名文件夹后,我能够重现问题

当我将更改提交到CodeCommit并触发CodePipeline时,一旦它到达CodeBuild,它几乎立即失败并出现以下错误:

错误]无法在项目api上执行目标:无法解析项目com.priooo的依赖关系:api:war:0.0.29:无法在org.ibissource收集依赖项:ibis-adapterframework-core:jar:7.0- B4-SNAPSHOT:无法读取org.ibissource的工件描述符:ibis-adapterframework-core:jar:7.0-B4-SNAPSHOT:无法传输工件org.ibissource:ibis-adapterframework-core:pom:7.0-B4-SNAPSHOT来自/ to ibis-mvn-repo(https://github.com/ibissource/mvn-repo/raw/master/releases):收到致命警报:protocol_version - > [帮助1]

<properties>
     <iaf.version>7.0-RC3-SNAPSHOT</iaf.version>
</properties>

<repositories>
    <repository>
        <id>ibis-mvn-repo</id>
        <url>${ibissource.maven.repository.https}/releases</url>
    </repository>
    <repository>
        <id>ibis-mvn-repo-snapshots</id>
        <url>${ibissource.maven.repository.https}/snapshots</url>
    </repository>
</repositories>

并且在依赖项中我有以下

<dependency>
        <groupId>org.ibissource</groupId>
        <artifactId>ibis-adapterframework-core</artifactId>
        <version>${iaf.version}</version>
    </dependency>
    <dependency>
        <groupId>org.ibissource</groupId>
        <artifactId>ibis-adapterframework-larva</artifactId>
        <version>${iaf.version}</version>
    </dependency>
    <dependency>
        <groupId>org.ibissource</groupId>
        <artifactId>ibis-adapterframework-webapp</artifactId>
        <version>${iaf.version}</version>
        <type>war</type>
    </dependency>

似乎Maven不喜欢Github重定向到原始文件。我们已经将Github URL更改为原始URL,它似乎解决了问题

<ibissource.maven.repository.https>https://raw.githubusercontent.com/ibissource/mvn-repo/master</ibissource.maven.repository.https>

1 个答案:

答案 0 :(得分:0)

  

当您将Maven与AWS CodeBuild一起使用时提供Java构建   环境,Maven从安全中提取构建和插件依赖性   https://repo1.maven.org/maven2的中央Maven存储库。这个   即使您的构建项目的pom.xml文件显式声明,也会发生   其他地方可以使用。

您需要使用settings.xml替换AWS Codebuild中的settings.xml。

version 0.2

phases:
  install:
    commands:
      - cp ./settings.xml /root/.m2/settings.xml

参考:https://docs.aws.amazon.com/codebuild/latest/userguide/troubleshooting.html#troubleshooting-maven-repos