Lionbridge-connector в Azure Artifacts выдает ошибку зависимости

Я пытаюсь перенести наши артефакты Maven из Nexus в Azure Artifacts, но столкнулся с проблемой из-за артефакта lionbridge-connector.all.author. Этот артефакт представляет собой zip-архив, где pom находится только внутри архива. На Nexus нам удалось загрузить архив в том виде, в котором он был предоставлен, но при развертывании в Azure Artifacts с помощью «mvn Deploy: Deploy-file» файл pom продолжает извлекаться и загружаться отдельно в канал.

По этой причине при сборке проекта maven пытается разрешить зависимости pom вместо того, чтобы обращаться с архивом как с файлом.

Ошибка:

[ERROR] Failed to execute goal on project project-3rd-party-container: Could not resolve dependencies for project com.proj.aem:project-3rd-party-container:content-package:2.18.0-SNAPSHOT: Failed to collect dependencies at com.adobe.cloud.translation.connector:lionbridge-connector.all.author:zip:5.1.1: Failed to read artifact descriptor for com.adobe.cloud.translation.connector:lionbridge-connector.all.author:zip:5.1.1: The following artifacts could not be resolved: com.adobe.cloud.translation.connector:lionbridge-connector:pom:5.1.1 (absent): Could not find artifact com.adobe.cloud.translation.connector:lionbridge-connector:pom:5.1.1 in azure-feed (https://pkgs.dev.azure.com/my-organization/project-id/_packaging/azure-feed/maven/v1)

Мне не удалось найти способ загрузить пакет без файла pom, и я также не знаю, как сказать maven, чтобы он прекратил разрешать pom для этой конкретной зависимости. Родительская зависимость, упомянутая в ошибке «lionbridge-connector», скорее всего, не существует и не предназначена для чтения. Кто-нибудь еще знает способ решить эту проблему? Это преследовало меня уже несколько дней.

Попробовал загрузить архив без файла pom, переименовав файл pom. Проект пропустил pom, но не смог успешно собраться. Попробовал добавить тег в зависимость, но не помогло.

Как вы назвали deploy:deploy-file моджо? Можете ли вы попробовать вот так: mvn deploy:deploy-file -Dpackaging = "zip" -DrepositoryId = "{feedName}" -Durl = "{feedURL}" -DgroupId = "{groupId}" -DartifactId = "{artifactId}" -Dversion = "{version}" -Dfile = "{fileLocalPath}"?

Bright Ran-MSFT 20.06.2024 11:35

Да. То, как я использовал моджо, очень похоже на ваш пример: mvn deploy:deploy-file -DgroupId=com.adobe.cloud.translation.connector -DartifactId=lionbridge-connector.all.author -Dversion=5.1.1 -Dpackaging=zip -Dfile=/path-to/lionbridge-connector.all.author-5.1.1.zip -Durl=https://pkgs.dev.azure.com/my-organization/project-id/‌​_packaging/azure-fee‌​d/maven/v1 -DrepositoryId=azure-feed -DgeneratePom=false

Cristian Mocofanescu 20.06.2024 12:26

Насколько я знаю, вы можете установить параметр -DgeneratePom=false, когда POM-файлы существуют в каталоге, где вы запускаете deploy:deploy-file mojo, в противном случае вам нужно оставить true, чтобы моджо мог генерировать POM-файл на лету. на основе других параметров, которые вы установили в моджо. @КристианМокофанеску

Bright Ran-MSFT 20.06.2024 12:53

Странно то, что pom-файл извлекается из архива независимо от параметра -DgeneratePom. Если архив находится один в каталоге, pom появится после запуска команды mvn Deploy:deploy-file.

Cristian Mocofanescu 20.06.2024 13:59

Попробуйте удалить POM-файл из ZIP-архива, а затем снова попробуйте моджо deploy:deploy-file. @КристианМокофанеску

Bright Ran-MSFT 20.06.2024 14:04

Я попробовал, но сборка не удалась при попытке запустить разъем LionBridge. [ERROR] Failed to execute goal com.adobe.aem:aemanalyser-maven-plugin:1.5.8:project-analyse (analyser) on project project-all-container: Content Package Converter Exception Content Package Converter exception Cannot invoke "org.apache.jackrabbit.vault.packaging.PackageId.getGroup()" because "currentId" is null

Cristian Mocofanescu 20.06.2024 14:22

Когда вы публикуете пакет Maven в формате ZIP на Nexus, какие команды и конфигурации вы использовали? @КристианМокофанеску

Bright Ran-MSFT 20.06.2024 14:43

Я считаю, что артефакт был вручную загружен в Nexus через его пользовательский интерфейс, поэтому команда развертывания mvn не выполнялась. Я думаю, именно поэтому Nexus допускает артефакты без файлов POM. Мавен нет. Мне удалось решить эту проблему, установив -DgeneratePom=true. Это сгенерировало POM-файл по умолчанию для архива.

Cristian Mocofanescu 27.06.2024 15:24
Не удалось выполнить цель org.apache.maven.plugins
Не удалось выполнить цель org.apache.maven.plugins
Опишу, что когда я только начинал изучать Maven, у меня не получалось компилировать и упаковывать.
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Если вы являетесь веб-разработчиком или тестировщиком, вы можете быть знакомы с Selenium, популярным инструментом для автоматизации работы...
0
8
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Кажется, мне не удалось успешно загрузить артефакт для соединителя LionBridge, потому что я неправильно использовал параметр -DgeneratePom.

Nexus гораздо более либерален в управлении версиями артефактов и позволяет загружать вручную даже без файлов POM. Однако развертывание Maven этого не позволяет. POM-файл должен присутствовать для каждой версии. Lionbridge-connector — это ZIP-архив без POM. Если вы попытаетесь развернуть его через mvn deploy:deploy-file с помощью -DgeneratePom=false, Maven фактически извлечет POM из архива META-INF. В основном это было причиной ошибки — плохой файл POM.

Что мне нужно было сделать, так это настроить -DgeneratePom=true, чтобы Maven мог генерировать POM-файл по умолчанию для моего .zip-архива. Это решило мою проблему.

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