Может ли jboss-web.xml иметь доступ к свойствам? - PullRequest
5 голосов
/ 22 ноября 2011

Я пытаюсь настроить свой проект на использование разных имен виртуальных хостов в зависимости от среды.

Я знаю, что могу создать каталоги с отдельным файлом 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 Ответ

10 голосов
/ 22 ноября 2011

На самом деле, я нашел способ сделать это:

Файл 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>
...