Maven配置文件中插件配置的嵌套属性

6
我有一个Java EE 7 项目,部署在WildFly 8.1.0-Final上。我使用由Maven管理的独立Wildfly服务器进行测试(即,在每个mvn clean时进行干净的配置),并使用远程的“正常”服务器。
为了使用maven-wildfly-plugin(1.0.2.Final)部署到两个服务器,我配置了两个Maven配置文件:wildfly-local,定义本地用户名、密码和端口号;以及wildfly-remote,定义远程用户名、密码和端口号。
然而,远程服务器在域模式下运行,而本地服务器不运行。因此,我需要为远程服务器定义一个包含server-group的域配置,如下所示:
...
<plugin>
  <artifactId>wildfly-maven-plugin</artifactId>

  <configuration>
    <hostname>${wildfly-hostname}</hostname>
    <username>${wildfly-username}</username>
    <password>${wildfly-password}</password>
    <domain>
      <server-groups>
        <server-group>${wildfly-server-group}</server-group>
      </server-groups>
    </domain>
  </configuration>
  ...
</plugin>
...

${wildfly-hostname}和其他三个属性在配置文件中定义,这个配置是有效的。然而,独立的本地测试服务器不允许部署应用程序,其中任何一个服务器组都被定义。

我的第一个想法是在远程配置文件中定义一个嵌套属性,如下所示:

<profile>
  <id>wildfly-remote</id>
  <properties>
    ...
    <wildfly-domain>
      <server-groups>
        <server-group>*my server group name*</server-group>
      </server-groups>
    </wildfly-domain>
    ...
    </properties>
</profile>

...并在本地配置文件中添加一个简单的属性,如下所示:

<profile>
  <id>wildfly-local</id>
  <properties>
    <wildfly-domain/>
  </properties>
</profile>

Maven不喜欢这样做,因为它无法解析期望文本的标签。是否有一种方式可以定义一个“资源”,它在一个Maven配置文件中是嵌套的,但在另一个配置文件中是扁平的?
1个回答

6

属性只是简单的键值对,值不能解析为标记。

将整个配置移入配置文件中。


搞定了。谢谢! - Martin Lehmann

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接