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

Другие вопросы по тегам