Как мы можем построить и направить бом в том же пом
У меня есть одна работа Дженкинса, которая строит родительский пом. Внутри родительского пом у меня также есть спецификация модуля. Сам бомб упоминается в том же родительском 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, а затем включить этот родительский проект в основной родительский проект в качестве модуля. Честно говоря, я не пробовал второй подход, но вы могли бы это сделать.
НТН
Вместо использования
попробуйте предоставить явную версию, как,
<версия>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