Java 基于Maven概要文件的context.xml中的JNDI配置 鉴于
我刚开始和maven一起做“时髦的事情”,现在我陷入了困境。我有两个需要部署到的独立服务器,每个服务器都是在Java 基于Maven概要文件的context.xml中的JNDI配置 鉴于,java,maven,Java,Maven,我刚开始和maven一起做“时髦的事情”,现在我陷入了困境。我有两个需要部署到的独立服务器,每个服务器都是在context.xml 我的文件结构是这样的:(尽管如果有更好的方法,我可以改变这个) 根据部署目标,我希望使用适当的context.target.xml文件 问题: 我知道我需要设置两个不同的构建配置文件,例如: <profiles> <profile> <id>prod</id> </profile>
context.xml
我的文件结构是这样的:(尽管如果有更好的方法,我可以改变这个)
根据部署目标,我希望使用适当的context.target.xml
文件
问题:
我知道我需要设置两个不同的构建配置文件,例如:
<profiles>
<profile>
<id>prod</id>
</profile>
<profile>
<id>devel</id>
</profile>
</profiles>
戳
德维尔
但从这里开始,我开始搞不清楚什么是最好的解决方案。我知道使用war插件可以排除context.xml
,但从那以后我就不知道该怎么做了
是否有一种方法可以在我的context.xml
中包含一个变量,我可以让maven“编写”该变量,而不是使用两个不同的配置文件
有什么建议吗?您可以使用maven资源筛选,在maven构建生命周期的流程资源阶段明确包括或排除特定文件
<profiles>
<profile>
<id>prod</id>
<resources>
<resource>
<directory>src/main/resources/META-INF</directory>
<filtering>true</filtering>
<includes>
<include>**/context.prod.xml</include>
</includes>
</resource>
</resources>
</profile>
<profile>
<id>devel</id>
<resources>
<resource>
<directory>src/main/resources/META-INF</directory>
<filtering>true</filtering>
<includes>
<include>**/context.devl.xml</include>
</includes>
</resource>
</resources>
</profile>
</profiles>
戳
src/main/resources/META-INF
真的
**/context.prod.xml
德维尔
src/main/resources/META-INF
真的
**/context.devl.xml
可以找到文档。这里有一些提示
- 您只需要一个
context.xml
- 用自定义maven属性替换
中特定于服务器的条目。例如:${myServer}或${dbUser}context.xml
- 在配置文件中定义这些属性,如下所示
戳
srv-prod.yourcompany.com
詹姆斯
德维尔
srv-devel.yourcompany.com
理查德
- 正确配置
org.apache.maven.plugins
maven战争插件
2.5
真的
src/main/webapp/META-INF
/META-INF
真的
- 在maven构建中激活适当的概要文件。例如,在命令行上调用
。或者在IDE中激活所需的配置文件。对于mvn-Pprod clean package
使用devl
-Pdevl
context.prod.xml
和contex.devl.xml
专有名称吗?关于公约、最佳做法。。。使用prod
或devl
是否需要额外编码?@Ulrich抱歉,我不知道这方面的下注实践。如果您想在打包之前更改名称,您可以随时利用maven assembly插件。这正是我想要的
<profiles>
<profile>
<id>prod</id>
<resources>
<resource>
<directory>src/main/resources/META-INF</directory>
<filtering>true</filtering>
<includes>
<include>**/context.prod.xml</include>
</includes>
</resource>
</resources>
</profile>
<profile>
<id>devel</id>
<resources>
<resource>
<directory>src/main/resources/META-INF</directory>
<filtering>true</filtering>
<includes>
<include>**/context.devl.xml</include>
</includes>
</resource>
</resources>
</profile>
</profiles>