POM文件的<parent>节点中是否允许使用${...}属性?
Maven父节点中使用属性的疑问
Maven的POM参考文档指出,属性值“可在POM内的任何位置访问”,但这并非100%成立。属性的解析值依赖于POM的父节点,因此在<parent>节点中使用属性似乎会造成循环依赖:
- 要获取父节点的坐标,需要先解析父节点中使用的属性
- 要解析这些属性,又需要先获取父节点的坐标
比如,是否允许编写以下代码:
<parent> <groupId>my.group</groupId> <artifactId>${project-prefix}-common</artifactId> <version>xyz</version> </parent>
如果允许的话,Maven会为${project-prefix}使用什么值?
Maven官方文档表明属性可以在<parent>节点中使用,但我在Maven 3.9.8中的测试发现其行为几乎无法预测(至少对我这个POM新手来说是如此)。
属性是否真的允许在<parent>节点中使用?此外,有没有官方文档明确说明<parent>节点中的属性应如何工作?
内容的提问来源于stack exchange,提问作者Calvin
相关产品推荐
相关产品推荐

