我正在尝试将项目设置为根据环境使用不同的虚拟主机名。
我知道我可以在每个目录中使用单独的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在虚拟主机位置有变量名,而不是值。
我是在咆哮错误的树吗?
谢谢,
埃里克
答案 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>