installAtEnd и deployAtEnd не выполняются в конце сборки

У меня есть многомодульный проект с такой структурой:

  • build
    • module
    • модуль.бом
    • rcp.build
      • module.rcp

Оба строят проекты, где раньше и работали отдельно. Теперь, когда я собрал их вместе, installAtEnd и deployAtEnd не работают. Я добавил их так:

    <plugin>
      <artifactId>maven-install-plugin</artifactId>
      <version>2.5.2</version>
      <configuration>
        <installAtEnd>true</installAtEnd>
      </configuration>
    </plugin>
    <plugin>
      <artifactId>maven-deploy-plugin</artifactId>
      <version>2.8.2</version>
      <configuration>
        <deployAtEnd>true</deployAtEnd>
      </configuration>
    </plugin>

Я не настраивал плагины сверх вышеперечисленных. Тем не менее, всякий раз, когда я запускаю сборку, я получаю следующий журнал:

[INFO] --- maven-install-plugin:2.5.2:install (default-install) @ module.rcp ---
[INFO] Installing group:module.rcp:0.1.6-SNAPSHOT at end
[INFO] 
[INFO] --- maven-deploy-plugin:2.8.2:deploy (default-deploy) @ module.rcp ---
[INFO] Deploying group:module.rcp:0.1.6-SNAPSHOT at end
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] modules ............................................. SUCCESS [  3.339 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:05 min
[INFO] Finished at: 2019-01-18T12:54:18+01:00
[INFO] ------------------------------------------------------------------------

Maven забыл установить/развернуть.

Я обнаружил эту ошибку и этот вопрос, который предполагает, что это может быть связано с Тихо. Поэтому я добавил подключаемые модули Tycho к родительскому файлу pom.xml, который ничего не сделал. Затем я полностью удалил модуль RCP. Все та же проблема.

Теперь в спецификации по-прежнему есть родитель, который не является «сборкой» проекта Maven, и его удаление/изменение родителя приводит к правильной установке и развертыванию сборки. Однако, поскольку это спецификация, я не могу использовать родителя «сборки».

Есть ли другой способ заставить installAtEnd и deployAtEnd работать в структуре моего проекта?


person Steffi S.    schedule 18.01.2019    source источник
comment
Это не может работать, потому что installAtEnd/deployAtEnd не будет работать правильно для других пакетов, таких как Tycho. Если вам нужно рабочее решение для таких случаев, взгляните на: github.com/khmarbaise/maven- расширение-расширения   -  person khmarbaise    schedule 18.01.2019
comment
@khmarbaise Как я уже сказал в вопросе, я удалил модуль Tycho, и ошибка не исчезла. На самом деле, я уже знаю (и заявил), что проблема заключается в том, что спецификация и ее родительский POM различны. (И, к вашему сведению, это работает без спецификации, но с Tycho.)   -  person Steffi S.    schedule 18.01.2019
comment
@khmarbaise Но ваш подключаемый модуль Maven все еще работает для спецификации, так что спасибо. :)   -  person Steffi S.    schedule 18.01.2019


Ответы (1)


Как указал khmarbaise, можно использовать следующее расширение Maven: https://github.com/khmarbaise/maven-deployer-extension

Обратите внимание, что этот подход не будет работать на Jenkins, поскольку он не поддерживает ядро ​​Maven. расширения. (Я бы сказал «пока», но JENKINS-30058 — это ошибка блокировщика 4-летней давности, поэтому я полагаю, что в ближайшее время ее не исправят.) Если сборка должна работать и на Jenkins, похоже, нет другой вариант, кроме отключения deployAtEnd и installAtEnd или удаления второго родительского POM из модулей.


Сегодня я нашел еще одну причину, по которой сборка не развертывается при сохранении старого проекта. Было что-то вроде этого:

        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <extensions>true</extensions>
        </plugin>

Удаление <extensions> привело к повторному развертыванию проекта.

person Steffi S.    schedule 28.01.2019