Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven:部署时间筛选_Maven - Fatal编程技术网

Maven:部署时间筛选

Maven:部署时间筛选,maven,Maven,在我的projet中,应用程序资源目录中有包含属性占位符的xml文件。然后,maven在构建时从过滤器文件(比如app.filters)中过滤占位符。app.filters文件包含数据库用户名、密码、连接字符串、sftp主机名、paswword、目录等参数。这些参数的值因应用程序部署的环境而异-dev、test、,prod等。目前,我使用不同的app.filters文件分别为每个环境构建项目 我想知道是否有一种方法,使用maven,一次为所有环境构建项目,然后在部署时根据环境提供不同的筛选文件来

在我的projet中,应用程序资源目录中有包含属性占位符的xml文件。然后,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或其插件目前无法实现,则需要在将来的版本中添加该功能。