我在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>
答案 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