загрузить банку в репозиторий - PullRequest
5 голосов
/ 16 декабря 2009

У меня есть jar-файлы, которые нельзя найти в репозитории maven2. Я хотел бы добавить банку, чтобы я мог просто добавить дополнительный тег в мой файл pom.xml, и другой разработчик может использовать банку. Какие шаги необходимо выполнить, чтобы загрузить файл jar в веб-папку http веб-сервера? Какой файл я должен загрузить помимо custom.jar? Какие еще файлы должны существовать в веб-папке рядом с custom.jar?

Ответы [ 3 ]

7 голосов
/ 17 декабря 2009

Если у вас уже настроен веб-сервер, указывающий на веб-папку, простой способ развертывания пользовательского JAR-файла - использовать deploy:deploy-file Mojo. Как описано на странице Использование плагина Maven Deploy:

Используется deploy:deploy-file mojo в первую очередь для развертывания артефактов в которые не были построены Maven. Команда разработчиков проекта может или может не предоставлять POM для артефакта, и в некоторых случаях вы можете захотеть развернуть артефакт на внутреннем удаленный репозиторий. Файл deploy mojo обеспечивает функциональное покрытие все эти варианты использования, и предлагает широкий диапазон конфигурируемости для генерировать POM на лету. Кроме того, вы можете указать, что макет вашего хранилища использует. Полный оператор использования файла deploy Моджо можно описать так:

mvn deploy:deploy-file -Durl=file://C:\m2-repo \
                       -DrepositoryId=some.id \
                       -Dfile=your-artifact-1.0.jar \
                       [-DpomFile=your-pom.xml] \
                       [-DgroupId=org.some.group] \
                       [-DartifactId=your-artifact] \
                       [-Dversion=1.0] \
                       [-Dpackaging=jar] \
                       [-Dclassifier=test] \
                       [-DgeneratePom=true] \
                       [-DgeneratePom.description="My Project Description"] \
                       [-DrepositoryLayout=legacy] \
                       [-DuniqueVersion=false]

Обязательны только 3 первых параметра (краткая версия). Если вам интересно, что такое repositoryId , документация Mojo гласит:

Идентификатор сервера для сопоставления в <id> в разделе <server> settings.xml В большинстве случаев этот параметр потребуется для аутентификации. Значение по умолчанию: удаленный репозиторий.

Другими словами, самый простой способ использовать это - скопировать ваш пользовательский JAR на компьютер, на котором размещен веб-сервер, и использовать протокол file:// при указании URL. Никаких дополнительных настроек не требуется. Если вы хотите развернуть удаленно, то scp:// часто является предпочтительным протоколом (есть другие, но этот довольно прост в настройке). Ниже приведен пример использования scp:

mvn deploy:deploy-file -DgroupId=my.group -DartifactId=myartifact -Dversion=1.0 \
  -DgeneratePom=true \
  -Dpackaging=jar \
  -Dfile=custom.jar \
  -DrepositoryId=some.id \
  -Durl=scp://REMOTEMACHINE/PATH/TO/WEB_ROOT/maven2_repository

На самом деле, использование веб-сервера для размещения собственного репозитория Maven прекрасно, но его инициализация может быть немного болезненной. Одним из решений этой проблемы является использование прокси-сервера Maven (например, Nexus ) вместо простого репозитория Maven. Но это выходит за рамки вашего вопроса.

Для получения дополнительной информации об этом проверьте (принципы остаются в силе, даже если решения по реализации немного устарели):

1 голос
/ 16 декабря 2009

Следующая команда помогает установить jar в локальный репозиторий. После этого вы можете загрузить папку с jar из локального в удаленный репозиторий.

mvn install:install-file \
  -DgroupId=com.name \
  -DartifactId=aaaa-bc \
  -Dversion=1.0 \
  -Dpackaging=jar \
  -Dfile=aaaa-bc.jar \
  -DcreateChecksum=true
1 голос
/ 16 декабря 2009

Желательно, чтобы вам был нужен локальный репозиторий maven. Одним из вариантов для этого является Nexus

Или, если вы работаете только самостоятельно, вы можете сохранить накладные расходы и поместить файлы jar в репозиторий на вашем компьютере - под home/.m2/repository, в соответствующую папку

...