基于Maven配置文件的context.xml中的JNDI配置
特定
我很想和maven一起做“时髦的东西”而且我遇到了困境。 我需要部署两个单独的服务器,每个服务器作为context.xml
定义的略有不同的JDNI资源配置文件
我的文件结构是这样的:( 虽然如果有更好的方法,我可以改变它 )
src/main/webapp/META-INF/context.xml src/main/webapp/META-INF/context.devel.xml src/main/webapp/META-INF/context.prod.xml
根据部署目标,我想使用适当的context.TARGET.xml
文件。
题
我知道我需要设置两个不同的构建配置文件,例如:
prod devel
但是从这里我对最佳解决方案是什么感到困惑。 我理解使用war插件我可以排除context.xml
但是context.xml
起我很困惑该怎么做。
有没有办法在我的context.xml
中有一个变量,我可以使用maven“写”而不是拥有2个不同的配置文件。
有什么建议么?
这里有一些提示。
- 你只需要一个
context.xml
。 - 使用自定义maven属性替换
context.xml
的服务器特定条目。 例如:$ {myServer}或$ {dbUser} - 像这样在您的配置文件中定义这些属性
prod srv-prod.yourcompany.com james devel srv-devel.yourcompany.com richard
- 正确配置maven-war-plugin 。
org.apache.maven.plugins maven-war-plugin 2.5 true src/main/webapp/META-INF /META-INF true
- 激活maven构建中的相应配置文件。 例如,在命令行上调用
mvn -Pprod clean package
。 或者在IDE中激活所需的配置文件。 对于devl
使用-Pdevl
而不是。
您可以使用maven资源过滤来显式包含或排除Maven构建生命周期的进程资源阶段中的特定文件。
prod src/main/resources/META-INF true **/context.prod.xml devel src/main/resources/META-INF true **/context.devl.xml
文档可以在这里找到。