2011-11-09 76 views
0

在我的projet中,我在应用程序资源目录中包含属性占位符的xml文件。然后,maven在构建时将占位符从过滤器文件(例如app.filters)中过滤掉。 app.filters文件包含数据库用户名,密码,连接字符串,sftp主机名,paswword,目录等参数。这些参数的值根据应用程序部署在环境中的不同而不同 - dev,test,prod等。该项目分别为每个环境使用不同的app.filters文件。Maven:部署时间过滤

我想知道是否有一种方法,使用maven,为所有环境构建一次项目,然后在部署时根据环境来提供不同的过滤器文件以实现xml资源文件。

+0

这个问题有什么不对?为什么要投票? – Raihan

回答

0

如果你说你想要一个可移植的构建(好主意,BTW),那么它不是一个Maven问题。 Maven有助于构建您的应用程序。一旦你建立了你的EAR/WAR /无论Maven是不是照片中的。在运行时(不是部署时间),您可以让应用程序在其类路径中查找相应的配置文件。

有意义吗?

+0

Maven不仅用于构建jar文件。 Maven在生命周期中已经有'deploy','install','exec'插件遵循'build'阶段。在这些阶段中要求资源过滤并非不现实。 – Raihan

+1

我从来没有说过Maven只是用来构建JAR。我也没有说过你试图做的是不现实的。您的原始电子邮件问“如果有方法,使用maven,为所有环境构建一次项目”。 **这是我所说的。 _现在你正在讨论**构建过程中的资源过滤**。你想要哪一个_?在运行时处理资源文件必须是**应用程序的逻辑**。 Maven不参与到这里。 –

+0

正如我在最初的文章中,我仍然在寻找一种使用maven执行'deployment'时间资源过滤的方法。由于maven已经提供了'build'时间过滤功能,并且maven在生成之外的项目生命周期中得到了involed,它已经成为一个maven问题。如果目前无法使用Maven或其插件完成该功能,则需要在未来版本中添加其功能。 – Raihan