Maven 属性列表

Maven Properties List

尽管有标题,但我并不是在寻找与 Maven 一起使用的属性列表。

我希望设置一个包含项目列表的配置文件,在本例中为服务器列表。本地开发配置文件将只有一个服务器,而对于测试,可能有一个、两个或更多。

我怎样才能写出一个基本 'the same thing' 的项目列表?

<profile>
    <id>DEV_COMMON</id>
    <properties>
        <kafka.config.retries>3</kafka.config.retries>
        <kafka.brokers> <!-- the following causes Maven error -->
            <server>
                <host>hostname1</host>
                <port>1234</port>
            </server>
            <server>
                <host>secondhostname</host>
                <port>5678</port>
            </server>
            <server>
                <host>hostnameNumber3</host>
                <port>9101</port>
            </server>
        </kafka.brokers>
    </properties>
</profile>

上面的配置文件产生错误:

TEXT must be immediately followed by END_TAG and not START_TAG

非常感谢帮助。 KA.

问题是 Maven (AFAIK) 中的属性不允许重复值,因为每个 属性 都可以仅通过名称访问:

${test.server}

... 所以您将无法访问第一个属性以外的其他属性。这就是 Maven 甚至不允许 properties 节点内的子节点的原因。

作为一个小恶魔,我会给这些属性一个独特的名字:

<properties>
    <kafka.broker.server1.host>hostname1</kafka.broker.server1.host>
    <kafka.broker.server1.port>1234</kafka.broker.server1.port>
    <kafka.broker.server2.host>hostname2</kafka.broker.server2.host>
    <kafka.broker.server2.port>1235</kafka.broker.server2.port>
</properties>