Maven дочерняя ошибка с родительской версией
У нас есть следующая структура проекта:
parentPom.xml
Java-проекты
потоковые проекты
streambaseParentPom.xml
project1
проект2 (имеет зависимость проекта1)
Таким образом, у нас есть parentPom с наследниками streambaseParentPom, а последний наследует все проекты streambase. Итак, мы предпринимаем попытку иметь в parentPom свойство, называемое cerebro.version, которое определяет версию для parent. У нас возникают проблемы, когда у нас есть 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 ответ
Боюсь, это не сработает. Это плохая идея для параметризации <version>
значение, поскольку даже если вам удастся развернуть его в своем удаленном репо, любой проект, использующий этот артефакт позже, не будет иметь представления о том, что ${cerebro.version}
должен решить.
Помните, что Maven усердно работает, чтобы ваши сборки были воспроизводимыми. Если сборка зависит от некоторой переменной, которая была известна во время развертывания, но неизвестна для зависимых, ваша сборка больше не будет воспроизводимой.