Как скачать JAR с классификатором из репозитория Maven?

Я пытаюсь скачать JAR с именем mygroup-myid-myversion-jar-with-dependencies.jar из репозитория maven и пробных команд

mvn -q org.apache.maven.plugins:maven-dependency-plugin:2.1:get -DrepoUrl=MYURL -Dartifact=mygroups:myid:myversion:jar-with-dependencies

mvn -q org.apache.maven.plugins:maven-dependency-plugin:2.1:get -DrepoUrl=MYURL -Dartifact=mygroups:myid:myversion-jar-with-dependencies

И то и другое не удалось с ошибкой невозможности найти артефакт.

Это приложение называется "классификатор"?

Как загрузить JAR с классификатором?

1 ответ

Использование -Dclassifier=<classifier> или же -Dclassifiers=<classifiers> если у вас есть больше, чтобы загрузить.

Это сработало для меня:

mvn com.googlecode.maven-download-plugin:download-maven-plugin:artifact -DgroupId=org.jolokia -DartifactId=jolokia-jvm -Dversion=1.6.0 -Dclassifier=agent 

Это случилось со мной. У меня есть удаленный репозиторий на одном из интернет-сайтов, и наша внутренняя связка не получает эти зависимости удаленно с этого хоста. У нас есть настройка безопасности, при которой только сервер nexus может подключаться из внешнего мира, а наши машины разработки не имеют доступа к этим типам хостов удаленных репозиториев.

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

<dependency>
    <groupId>com.asset</groupId>
    <artifactId>integration-adapter</artifactId>
    <version>1.28.76</version>
    <classifier>jar-with-dependencies</classifier>
</dependency>

Вот шаги, которые подходят нашим командам разработчиков.

1.) Как администратор, я могу удаленно загружать эти проблемные артефакты.

2.) Сделайте этот файл доступным с защищенного хоста.

3.) Перейдите по этой ссылке на Nexus https://support.sonatype.com/hc/en-us/articles/213465818-How-can-I-programmatically-upload-an-artifact-into-Nexus-2-

4.) Вот как я создаю / развертываю во внутреннем репо, чтобы клиенты могли загружать их во время своих собственных сборок для своих проектов.

mvn deploy:deploy-file -DgroupId=com.asset -DartifactId=integration-adapter -Dversion=1.28.76 -Dclassifier=jar-with-dependencies -DgeneratePom=true -Dpackaging=jar -DrepositoryId=nexus -Durl= "http: // ваш-nexus-host:8081/nexus/content/repositories/repo-Release /" -Dfile=integration-adapter-1.28.76-jar-with-dependencies.jar -DupdateReleaseInfo=true

Выполнение вышеуказанного способа создает файлы pom и метаданные в нашей корпоративной связке, поэтому клиенты maven могут загружать эти артефакты.

5.) В свой.pom файл добавьте эти зависимости ниже:

Похоже, что в этот удаленный репозиторий (внешний хост) эти файлы были загружены напрямую, поэтому отсутствуют файлы maven pom, и мы, как потребители / клиенты, не можем создать его как обычно с другими рабочими артефактами, которые у них есть.

Примечание. Итак, если вы публикуете артефакты для внешнего мира и делаете свои артефакты доступными для загрузки, убедитесь, что вы знаете и прочли шаг 3 выше.

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