Подтвердить что ты не робот

Как пропустить выпуск или определенные модули в maven repo

Heyho,

У меня есть проект maven с этой структурой:

Родитель:

  • Элемент списка
  • API-модуль
  • module2
  • ...
  • module5
  • тест
  • распределение/сборка

Итак, сначала я запускаю родительский модуль, затем запускаю модуль, который строит api, затем модули, которые зависят от api, а затем тестовый модуль, который содержит инструменты для тестирования, а в конце я запускаю сборку/распространение, где Я упаковываю некоторые модули в архив. Из-за некоторых проблем я не могу изменить способ, и он работает до сих пор идеально.

С jenkins я отсылаю его в maven repo, но я хочу только выпустить, например API, и несколько модулей, а не тестовый модуль и модуль распространения. Есть ли способ пропустить их? Не хочу выпускать материал, который мне действительно не нужен:/

4b9b3361

Ответ 1

Чтобы понять вас правильно, вы все равно хотите запустить тестовые модули, но не хотите их разворачивать и выпускать. maven-deploy-plugin на помощь! Артефакт все равно будет построен, но не развернут.

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-deploy-plugin</artifactId>
    <version>2.7</version>
    <configuration>
        <skip>true</skip>
    </configuration>
  </plugin>

Тем не менее, плагин release jenkins все равно выпустит все артефакты. Вместо использования плагина release jenkins подумайте о выпуске maven-release-plugin, что легко сделать:

mvn release:prepare
mvn release:perform

Поскольку цели по умолчанию являются deploy и site, все должно быть в порядке.

Просто убедитесь, что в корневой папке есть тэг scm:

<scm>
    <connection>scm:svn|git:https://...</connection>
    <developerConnection>scm:svn|git:https://...</developerConnection>
</scm>

и что ваша команда управления версиями (git, svn,...) доступна на PATH.

Ответ 2

Вы можете добавить параметр командной строки maven, чтобы указать модули, которые будут созданы в jenkins.

-pl,--projects <arg>                   Comma-delimited list of specified
                                       reactor projects to build instead
                                       of all projects. A project can be
                                       specified by [groupId]:artifactId
                                       or by its relative path.

Ответ 3

Цель проектов агрегаторов - объединить требования к зданию для простых проектов. Если ваши базовые проекты имеют разные требования к зданию, подумайте о добавлении нового проекта агрегатора.

Отключите развертывание в вашем репозитории Maven в текущем проекте агрегатора и создайте новый проект агрегатора, содержащий только модули, которые вы хотите развернуть.

Добавьте этот новый проект в Jenkins, сделайте его зависеть от вашего оригинального проекта и настройте его для развертывания в вашем репозитории.