jboss-web.xml可以访问属性吗?

时间:2011-11-22 10:30:50

标签: maven jboss properties pom.xml virtual-hosts

我正在尝试将项目设置为根据环境使用不同的虚拟主机名。

我知道我可以在每个目录中使用单独的jboss-web.xml文件创建目录。但我最近将这个项目移到了maven,并希望利用这些配置文件。我已经设置了数据库,因此可以使用过滤器通过配置文件对它们进行不同的配置。

的JBoss-web.xml中:

<jboss-web>
    <context-root>/</context-root>
    <virtual-host>${jbossweb.virtualhost}</virtual-host>
</jboss-web>

特定于环境的属性文件具有以下条目:

jbossweb.virtualhost=hostname.domain.com

pom文件构建部分具有此定义

    <filters>
        <filter>src/main/filters/filter-${env}.properties</filter>
    </filters>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
        <resource>
            <directory>src/main/webapp/WEB-INF</directory>
            <filtering>true</filtering>
        </resource>
    </resources>

为了更好地衡量,配置文件部分具有以下配置:

  <profile>
    <id>dev</id>
    <properties>
      <env>dev</env>
    </properties>
  </profile>

我甚至不确定我想做的事情是否可行。当我尝试它时,Jboss-web.xml在虚拟主机位置有变量名,而不是值。

我是在咆哮错误的树吗?

谢谢,

埃里克

1 个答案:

答案 0 :(得分:10)

实际上,我发现了一种方法:

jboss-web.xml现在看起来像这样:

<jboss-web>
    <context-root>${jbossweb.contextroot}</context-root>
    <virtual-host>${jbossweb.virtualhost}</virtual-host>
 </jboss-web>

属性文件如下所示:

 jbossweb.virtualhost=hostname
 jbossweb.contextroot=/

然后pom部分对于maven war插件配置看起来像这样:

                <webResources>
                    <resource>
                        <directory>src/main/webapp/WEB-INF</directory>
                        <filtering>true</filtering>
                        <include>jboss-web.xml</include>
                        <targetPath>/WEB-INF</targetPath>
                    </resource>
                </webResources>

过滤器在插件部分上方定义,但在构建部分中定义如下:

    <filters>
        <filter>src/main/filters/filter-${env}.properties</filter>
    </filters>