Как скачать 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 выше.