У меня есть иерархия проекта, как:
A - pom.xml
|__ B - pom.xml
|__ C - pom.xml
Свойство project.version
определено в pom.xml определено в А. Другие два pom указывают родительский тег и соответствующий относительный путь к соответствующему родительскому pom.
<parent>
<groupId>com.GRP.id</groupId>
<artifactId>ARTIFACT_ID</artifactId>
<version>${project.version}</version>
<relativePath>../pom.xml</relativePath>
</parent>
Проблема здесь в том, что специалист не в состоянии разрешить $ {project.version} и использует его как есть. Это бросает следующее исключение при выполнении из A/B/C:
[ERROR] The build could not read 1 project -> [Help 1]
org.apache.maven.project.ProjectBuildingException: Some problems were encountered while processing the POMs:
[FATAL] Non-resolvable parent POM for com.project_name.module_name:sub_module_name:[unknown-version]: Could not transfer artifact com.project_name.module_name:module_name:pom:${project.version} from
to env-module_name-all-repos (REPO_URL): Illegal character in path at index 96: https://DEMO
/artifactory/env-module_name-all-repos/com/project_name/module_name/module_name/${project.version}/module_name-${project.version}.pom and 'parent.relativePath' points at wrong
local POM @ com.project_name.module_name:sub_module_name:[unknown-version], C:\WorkSpaces\Repository\sub_module_name\pom.xml, line 10, column 10
Любое предложение о том, как получить доступ к тем же от детей РОМ.
Спасибо за ответ @ 333kenshin. Позвольте мне перефразировать мой вопрос. Поскольку вы упомянули, что родительский блок разрешен перед любым другим блоком в chiild pom.xml, поэтому почему maven не может разрешить '$ {parent.version}' в родительском блоке, так как это явно версия, упомянутая в parent pom.xml? – Sumit
@Sumit: просмотрите мой ответ выше. – 333kenshin
Спасибо 333kenshin. Еще один вопрос: есть ли какое-либо обходное решение, чтобы пропустить ' 1.0-SNAPSHOT ' в родительском блоке child pom.xml. Наш огромный проект, поэтому очень сложно обновлять версию в каждом pom.xml каждый раз, когда выполняется новая версия. –
Sumit