尽管有标题,但我并不是在寻找与Maven一起使用的属性列表。
我希望设置一个包含项目列表的配置文件,在本例中是服务器列表。本地开发配置文件只有一个服务器,而测试时可能只有一个,两个或更多。
如何编写基本上“同一件事”的项目列表?
<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。
答案 0 :(得分:1)
问题是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>