Как мы можем построить и направить бом в том же пом

У меня есть одна работа Дженкинса, которая строит родительский пом. Внутри родительского пом у меня также есть спецификация модуля. Сам бомб упоминается в том же родительском POM, как показано ниже.

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.org.fgn.abs</groupId>
            <artifactId>abs-bom</artifactId>
            <version>${project.version}</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>
    </dependencies> 
</dependencyManagement>

Но он не может найти правильную версию бом. Очевидно, что он не найдет бомбу, потому что он еще не построен. Я просто ищу способ сделать то же самое, не имея отдельной работы по созданию бомбы.

Заранее спасибо.

3 ответа

Решение

Да, хороший вопрос Один из вариантов, безусловно, заключается в том, что сначала вы можете собрать проект BOM, используя отдельное задание в Jenkins, и таким образом, когда вы создаете свой основной родительский проект, он обнаруживает эту зависимость. У меня есть некоторые проекты, настроенные таким образом, и это должно работать нормально. Другой вариант, который, я думаю, заключается в том, что вы можете создать свой проект спецификации в качестве модуля в другом родительском проекте, скажем, B, а затем включить этот родительский проект в основной родительский проект в качестве модуля. Честно говоря, я не пробовал второй подход, но вы могли бы это сделать.

НТН

Вместо использования ${project.version}

попробуйте предоставить явную версию, как,

<версия>0.0.1-SNAPSHOT

Вы можете сослаться на http://www.baeldung.com/spring-maven-bom

Одним из решений этой проблемы является добавление спецификации в качестве модуля, как вы это сделали, но убедитесь, что это первый модуль, который нужно построить.

      <modules>
    <!-- Run first, not using the parent but part of the aggregator -->
    <module>bom</module>
    <!-- Module 1 using the parent -->
    <module>module1</module>
    <!-- Module 2 using the parent, depends on module 1 -->
    <module>module2</module>
</modules>

Простой, но отличный пример кода можно найти по адресу https://github.com/anliksim/maven-template-bom.

Обязательно прочитайте примечание о плагине version-maven (если вы его используете) и используйте processAllModules.

      mvn versions:set -DnewVersion=1.1-SNAPSHOT -DprocessAllModules=true
Другие вопросы по тегам