Maven:部署时间筛选
在我的projet中,应用程序资源目录中有包含属性占位符的xml文件。然后,maven在构建时从过滤器文件(比如Maven:部署时间筛选,maven,Maven,在我的projet中,应用程序资源目录中有包含属性占位符的xml文件。然后,maven在构建时从过滤器文件(比如app.filters)中过滤占位符。app.filters文件包含数据库用户名、密码、连接字符串、sftp主机名、paswword、目录等参数。这些参数的值因应用程序部署的环境而异-dev、test、,prod等。目前,我使用不同的app.filters文件分别为每个环境构建项目 我想知道是否有一种方法,使用maven,一次为所有环境构建项目,然后在部署时根据环境提供不同的筛选文件来
app.filters
)中过滤占位符。app.filters
文件包含数据库用户名、密码、连接字符串、sftp主机名、paswword、目录等参数。这些参数的值因应用程序部署的环境而异-dev、test、,prod等。目前,我使用不同的app.filters
文件分别为每个环境构建项目
我想知道是否有一种方法,使用maven,一次为所有环境构建项目,然后在部署时根据环境提供不同的筛选文件来具体化xml资源文件。如果您说您想要一个可移植的构建(好主意,顺便说一句),那么这不是maven的问题。Maven帮助构建您的应用程序。一旦你建立了你的耳朵/战争/任何Maven不在画面中的东西。在运行时(而不是部署时),您可以让应用程序在其类路径上查找适当的配置文件
有意义吗?这个问题有什么问题吗?为什么要投反对票?Maven不仅仅用于构建jar文件。Maven已经有了
deploy
,install
,exec
插件,这些插件遵循生命周期中的build
阶段。在这些阶段中要求进行资源过滤并不是不现实的,我从来没有说过Maven只用于构建JAR。我也没有说你的尝试是不现实的。您最初的电子邮件询问“是否有一种方法可以使用maven一次性为所有环境构建项目”。这就是我所说的。现在您讨论的是构建期间的资源筛选。你想要哪个?在运行时处理资源文件必须是应用程序的逻辑。这里没有涉及Maven。在我最初的帖子中,我仍然在寻找一种使用Maven执行部署
时间资源过滤的方法。由于maven已经提供了build
时间过滤,并且maven已经参与到构建之后的项目生命周期中,因此它已经成为了maven的一个问题。如果maven或其插件目前无法实现,则需要在将来的版本中添加该功能。