транзитивное управление зависимостями в Jenkins

У меня есть project Maven, который имеет множество потоковых процессоров и сервисов мастера удаления.

Среди них: db-source - содержит все DAO и Entities & client-source - содержит конечные точки внешних служб, которые используются всеми приложениями в project .
До сих пор их зависимость отдельно добавлялась каждым дочерним приложением в их собственном pom, и теперь предполагается, что я перешел к общему управлению версиями, используя <dependencyManagement> в POM project .

Это структура проекта на поверхности

+ project
    + db-source - pom.xml => picks version from build.properties
    + client-source  - pom.xml => picks version from build.properties
    + fabric - pom.xml => has db and client and there versions are picked from project_POM
    + the_pain_repo - pom.xml => uses fabric and picks its version from project_POM
+ project_POM

project_POM содержит <dependencyManagement> для версий db-source и client-source которые используются в the_pain_repo и других репозиториях ( the_pain_repo - один из упомянутых примеров репозиториев)

Итак, если вы наблюдаете, <dependencyManagement> выглядит следующим образом

   ==> fabric -> project_POM
   ==> the_pain_repo -> fabric -> project_POM   

Теперь, после сборки версии из project_POM the_pain_repo но the_pain_repo выдает ошибку, что не может выбрать версию db-source (которая идет из fabric ).

Ошибка:

[ERROR] Failed to execute goal on project inventory-processor: Could not resolve dependencies for project x.y.z:the_pain_repo:jar:1.7.4-SNAPSHOT: The following artifacts could not be resolved: x.y.z:db-source:jar:${db.source.version}, 
 x.y.z:client-source:jar:${client.source.version}: Could not find artifact x.y.z:client-source:jar:${client.source.version} in systems-artifactory (http://artifactory.systems.com/content/groups/public) -> [Help 1]
[ERROR] 

значения как в Дженкинс:

Root POM :  the_pain_repo/pom.xml
Properties File Path : the_pain_repo/build.properties

Всего 1 ответ


Разверните родительский pom в своем хранилище Maven (или артефакт). Вы можете попробовать это, выполнив mvn clean install или mvn -N clean install (только для родительского модуля), чтобы развернуть ее в локальном .m2


Есть идеи?

10000