【问题标题】:Nested property in Maven profile for plugin configuration用于插件配置的 Maven 配置文件中的嵌套属性
【发布时间】:2014-06-30 08:18:30
【问题描述】:

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

为了使用 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} 和其他三个属性在配置文件中定义,并且此配置有效。但是,独立的、非“域模式”的本地测试服务器根本不允许部署定义了服务器组的应用程序。

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

<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 配置文件中但平放在另一个配置文件中的“资源”?

【问题讨论】:

    标签: java maven nested-properties


    【解决方案1】:

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

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

    【讨论】:

    • 做到了。谢谢!
    猜你喜欢
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-02
    • 2020-06-03
    • 1970-01-01
    • 2015-05-31
    相关资源
    最近更新 更多