Вопрос или проблема
Иногда я хотел развернуть, но вместо этого был введён mvn package
.
Иногда я хочу развернуть в другой альтернативный репозиторий (используя mvn deploy -DaltDeploymentRepository=...
), сразу после развертывания по умолчанию.
Поэтому я действительно не хочу снова упаковывать и тестировать их, потому что они уже успешно прошли. Результирующие jar-файлы просто находятся в директории target/
. Я надеюсь, что смогу их развернуть.
Я знаю, что существует deploy:deploy-file
, но это неудобно, я не хочу снова указывать groupId и artifactId в командной строке. Это не сработает для больших проектов, которые содержат много jar-файлов для развертывания, тоже.
Используйте флаг командной строки maven.test.skip для пропуска тестов:
mvn -Dmaven.test.skip=true install
Используйте флаг командной строки maven.repo.list для добавления другого репозитория:
mvn -Dmaven.repo.list=
Ответ или решение
Чтобы выполнить команды Maven для установки (install) или развертывания (deploy) без повторного упаковывания (re-package) или тестирования (re-test), вы можете использовать следующие рекомендации:
Установка (install) без упаковки и тестирования
Если вы уже выполнили команду mvn package
и получили необходимые артефакты в директории target/
, вы можете выполнить установку в локальный репозиторий без повторного упаковывания и тестирования следующим образом:
mvn install:install-file -Dfile=target/ваш-артефакт.jar -DgroupId=ваш.groupId -DartifactId=ваш.artifactId -Dversion=ваша.версия -Dpackaging=jar
При этом вам нужно указать файл (ваш-артефакт.jar) и метаданные (groupId, artifactId, version). Это может быть неудобно для больших проектов, но позволяет избежать повторного тестирования.
Развертывание (deploy) без повторного тестирования
Если вы хотите развернуть уже готовый артефакт в удалённый репозиторий, вы можете использовать плагин maven-deploy-plugin
для непосредственного развертывания ваших артефактов:
- По умолчанию (если уже выполнили
mvn package
):
mvn deploy:deploy-file -Dfile=target/ваш-артефакт.jar -DpomFile=pom.xml -DrepositoryId=ваш.repository.id -Durl=ваш.url.репозитория
Здесь вы указываете путь к уже созданному jar файлу, а также к POM файлу вашего проекта. Это упростит процесс развертывания.
- Для альтернативного репозитория можно использовать флаг
-DaltDeploymentRepository
:
mvn deploy -DaltDeploymentRepository=ваш.идентификатор:начальный_путь
Этот подход позволяет развернуть артефакт в любое место, используя существующие параметры.
Пропуск тестов
При необходимости вы можете пропустить тесты, установив флаг maven.test.skip=true
:
mvn install -Dmaven.test.skip=true
Это особенно полезно в случаях, когда вы уверены в стабильности вашей сборки и хотите минимизировать время сборки.
Заключение
Для удобства работы с Maven и выполнения развертывания или установки уже существующих артефактов без необходимости повторного тестирования и упаковки, используйте команды install:install-file
и deploy:deploy-file
. Это позволит вам эффективно управлять зависимостями и артефактами в проекте, не теряя времени на повторные сборки.