Ошибка дочерней зависимости Maven с родительской версией

У нас есть следующая структура проекта:

parentPom.XML

  • Java-проект

  • проекты streambase

    • streambaseParentPom.XML

      • project1

      • project2 (имеет зависимость project1)

Таким образом, у нас есть parentPom с наследует streambaseParentPom и последний наследует всем проектам streambase.
Таким образом, мы делаем попытку иметь в parentPom свойство под названием cerebro.версия, которая определяет версию для родителя.
Мы получаем проблемы, когда у нас есть project1 в зависимости от других проектов, мы получаем следующее сообщение об ошибке:

 [ERROR] Failed to execute goal on project eFX-SB7-Pricing: Could not resolve dependencies for project com.santander.fx:eFX-SB7-Pricing:jar:3.14.10.0.4-SNAPSHOT: 
Failed to collect dependencies at com.santander.fx:eFX-SB7-Common:jar:3.14.10.0.4-SNAPSHOT:
 Failed to read artifact descriptor for com.santander.fx:eFX-SB7-Common:jar:3.14.10.0.4-SNAPSHOT:
 Could not transfer artifact com.santander.fx:eFX-SB7-Parent:pom:${cerebro.version} from/to eFX-External-Repository (http://lnx-efxbuild2.ants.ad.anplc.co.uk:8081/artifactory/ext-release-local):
 Illegal character in path at index 109: http://lnx-efxbuild2.ants.ad.anplc.co.uk:8081/artifactory/ext-release-local/com/santander/fx/eFX-SB7-Parent/${cerebro.version}/eFX-SB7-Parent-${cerebro.version}.pom -> [Help 1]

Спасибо заранее.

1 ответ

  1. Я боюсь, что это не работает так. Это плохая идея, чтобы параметризовать <version>значение, так как даже если вам удалось развернуть его в удаленном репозитории, любой проект, использующий этот артефакт позже не будет иметь понятия, что ${cerebro.version}должно разрешиться.

    Помните, Maven упорно работает, чтобы сохранить ваши сборки воспроизводимыми. Если построение зависит от некоторой переменной, известной во время развертывания, но неизвестной для зависимых, построение больше не будет воспроизводимым.