AWS CodeBuild не может получить доступ к репозиторию Maven на GitHub
У меня небольшие проблемы с AWS CodeBuild. Мы размещаем инфраструктуру адаптеров ibis на Github ( https://github.com/ibissource/mvn-repo) в качестве хранилища Maven.
Я использую фреймворк как зависимость для проекта, над которым я работаю. В моем файле pom.xml я установил свойство версии и репозитории / зависимости.
Когда я запускаю сборку 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 из / в ibis -mvn-repo ( https://github.com/ibissource/mvn-repo/raw/master/releases): получено фатальное предупреждение: protocol_version -> [Help 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 к необработанным файлам. Мы изменили URL-адрес Github на необработанный URL-адрес, и, похоже, это решает проблему
<ibissource.maven.repository.https>https://raw.githubusercontent.com/ibissource/mvn-repo/master</ibissource.maven.repository.https>
1 ответ
Когда вы используете Maven в среде сборки Java, предоставляемой AWS CodeBuild, Maven извлекает зависимости сборки и подключаемых модулей из безопасного центрального хранилища Maven по адресу https://repo1.maven.org/maven2. Это происходит, даже если файл 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