Ошибка проверки контрольной суммы в maven из-за файлов PART с Java 11

Фон

Я использую Java 11.0.3, Maven 3.6.2 и com.github.seahen.maven-s3-wagon 1.3.1.

Я использую ведро s3 в качестве репозитория maven. У меня есть внутренний артефакт jar, называемый dbclasses. Я развертываю dbclasses в репозиторий s3 maven, используя mvn source:jar deploy.

У меня есть другой проект maven под названием secapps, в котором используется артефакт dbclasses. Вот соответствующая конфигурация, связанная с корзиной s3 и артефактом в pom-файле secapps.

<repositories>
    <repository>
        <id>maven.nuvalence.repo.release</id>
        <url>s3://ec-appdev-mvn-repo/release</url>
    </repository>
    <repository>
        <id>maven.nuvalence.repo.snapshot</id>
        <url>s3://ec-appdev-mvn-repo/snapshot</url>
    </repository>
</repositories>

<build>
    <extensions>
        <extension>
            <groupId>com.github.seahen</groupId>
            <artifactId>maven-s3-wagon</artifactId>
            <version>1.3.1</version>
        </extension>
    </extensions>
</build>

<dependencies>
    <dependency>
        <groupId>edu.excelsior</groupId>
        <artifactId>dbclasses</artifactId>
        <version>0.0.1</version>
    </dependency>
</dependencies>

Проблема

Всякий раз, когда я запускаю mvn clean package в secapps, выдается следующее предупреждение

[INFO] Downloading from maven.nuvalence.repo.release: s3://ec-appdev-mvn-repo/release/edu/excelsior/dbclasses/0.0.1/dbclasses-0.0.1.pom
[INFO] Logged in - ec-appdev-mvn-repo
[INFO] Downloading: s3://ec-appdev-mvn-repo/release/edu/excelsior/dbclasses/0.0.1/dbclasses-0.0.1.pom
[INFO] Downloading: s3://ec-appdev-mvn-repo/release/edu/excelsior/dbclasses/0.0.1/dbclasses-0.0.1.pom.sha1
[WARNING] Checksum validation failed, expected  but is 38790b95f185a41908a1767ae2ad2b5bfe436773 from maven.nuvalence.repo.release for s3://ec-appdev-mvn-repo/release/edu/excelsior/dbclasses/0.0.1/dbclasses-0.0.1.pom
[INFO] Downloading: s3://ec-appdev-mvn-repo/release/edu/excelsior/dbclasses/0.0.1/dbclasses-0.0.1.pom
[INFO] Downloading: s3://ec-appdev-mvn-repo/release/edu/excelsior/dbclasses/0.0.1/dbclasses-0.0.1.pom.sha1
[WARNING] Could not validate integrity of download from s3://ec-appdev-mvn-repo/release/edu/excelsior/dbclasses/0.0.1/dbclasses-0.0.1.pom: Checksum validation failed, expected  but is 38790b95f185a41908a1767ae2ad2b5bfe436773
[WARNING] Checksum validation failed, expected  but is 38790b95f185a41908a1767ae2ad2b5bfe436773 from maven.nuvalence.repo.release for s3://ec-appdev-mvn-repo/release/edu/excelsior/dbclasses/0.0.1/dbclasses-0.0.1.pom
[INFO] Downloaded from maven.nuvalence.repo.release: s3://ec-appdev-mvn-repo/release/edu/excelsior/dbclasses/0.0.1/dbclasses-0.0.1.pom (4.7 kB at 2.8 kB/s)
[INFO] Logged off - ec-appdev-mvn-repo

Вы заметите, что он говорит, что проверка контрольной суммы не удалась, ожидалось, но это 38790b95f185a41908a1767ae2ad2b5bfe436773.

Другими словами, ожидаемая контрольная сумма будет 38790b95f185a41908a1767ae2ad2b5bfe436773, но вы дали мне пустую.

Итак, я посмотрел на локальный репозиторий и вижу следующее

Вы заметите следующие две вещи для каждого файла

  • Для файлов pom и jar существует связанный файл .part.
  • файл .part содержит все данные, но не фактические файлы пусты

Если файлы .part переименовать, чтобы удалить .partXXXX, все работает нормально. Но по какой-то причине каждый раз, когда я пытаюсь собрать, он сохраняет файлы .part и оставляет обычные файлы в 0K.

Вопрос

Что это за файлы .part и почему у моих обычных файлов 0K? Как решить эту проблему?

Попытки

Я пробовал много вещей, включая

  • Ручное удаление зависимости из моего локального репозитория
  • Повторное развертывание зависимости на s3
  • Настройка checksumPolicy на предупреждение
  • Настройка updatePolicy на всегда

Однако ни один из них, похоже, не работает. У кого-нибудь есть решение для этого? Все остальные зависимости от центра Maven тянутся нормально. Ни одна из зависимостей от s3 не работает

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
2 396
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Отвечать

Похоже, что maven-s3-wagon плохо работает с Java 11. Я заменил вагон maven-s3-wagon на вагон aws-maven, и это решило мою проблему.

Приора универсал

<extension>
    <groupId>com.github.seahen</groupId>
    <artifactId>maven-s3-wagon</artifactId>
    <version>1.3.1</version>
</extension>

Новый вагон

<extension>
    <groupId>com.github.platform-team</groupId>
    <artifactId>aws-maven</artifactId>
    <version>6.0.0</version>
</extension>

Я также пробовал с aws-maven wagon. Но это работало не во всех сценариях. Он загружает артефакты, но в некоторых случаях .jar отсутствовал. И это не завершило загрузку с s3

ManulMad 11.01.2022 23:00
Ответ принят как подходящий

Вы можете использовать последнюю версию Seahen S3 Wagon 1.3.3, потому что предыдущие версии Seahen Wagon не работают должным образом с новейшими версиями Java. А также вам нужно добавить подходящую зависимость для правильной работы этого вагона. Добавьте следующий вагон и зависимость в pom.xml, удалите все предыдущие сборки в m2, а также файл github в m2 и попробуйте перезагрузить проект. Это решит проблему.

фургон

<extension>
    <groupId>com.github.seahen</groupId>
    <artifactId>maven-s3-wagon</artifactId>
    <version>1.3.3</version>
</extension>

Зависимость

<dependency>
    <groupId>com.github.seahen</groupId>
    <artifactId>maven-s3-wagon</artifactId>
    <version>1.3.3</version>
</dependency>

Для дальнейшего ознакомления перейдите по этим ссылкам

https://github.com/seahen/maven-s3-wagon https://mvnrepository.com/artifact/com.github.seahen/maven-s3-wagon/1.3.3

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