是否可以将父属性设置为最终属性,以便子属性无法覆盖它

2022-09-01 16:12:02

是否可以使父 pom 中的属性不被模块 pom 覆盖?

例如:

如果模块 pom 说:

<properties>
    <someProperty>some value to be replaced</properties>
</properties>

父 pom 已经将其声明为:

<properties>
    <someProperty>strongValue</someProperty>
</properties>

有效模块 pom 应为:

<properties>
    <someProperty>strongValue</someProperty>
</properties>

但目前预计是这样的:

<properties>
    <someProperty>some value to be replaced</properties>
</properties>

如果是,那么如何实现它?


答案 1

不能。这个想法是,如果不应该重写某个值,请不要使用属性。如果没有其他选项,则可能需要使用 http://maven.apache.org/enforcer/enforcer-rules/requireProperty.html 强制使用如果属性的值与预期不同,则会中断生成。


答案 2

我知道要做到这一点的唯一方法是在命令行上定义属性,例如.mvn -DsomeProperty=strongValue <mvn goals/phases here>

您可以尝试使用父配置文件中定义的配置文件;我怀疑这无济于事。


推荐