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

时间:2014-06-30 08:18:31

标签: java maven nested-properties

我有一个部署到WildFly 8.1.0-Final的Java EE 7项目。我使用由Maven管理的独立Wildfly服务器(即每个mvn clean上的干净配置)进行测试,以及" normal"远程服务器。

为了使用maven-wildfly-plugin(1.0.2.Final)部署到两台服务器,我配置了两个Maven配置文件: wildfly-local ,它定义了本地用户名,密码,和端口号;和 wildfly-remote ,它定义了远程用户名,密码和端口号。

但是,远程服务器以域模式运行,而本地服务器则不运行。因此,我需要为远程服务器定义一个带有服务器组的域配置,如下所示:

...
<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}以及其他三个属性在配置文件中定义,此配置有效。但是,独立的,非&#34;域模式&#34;本地测试服务器不允许部署完全定义服务器组的应用程序。

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

<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不喜欢这样,因为它无法解析预期文本的标签。

有没有办法定义一个&#34;资源&#34;它嵌套在一个Maven配置文件中,但在另一个Maven配置文件中是否平坦?

1 个答案:

答案 0 :(得分:3)

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

将整个配置移动到配置文件中。