如何创建Maven构建配置文件以有条件地复制文件?
我是maven的新手,我正在尝试使用配置文件创建pom.xml来为不同的环境构建war文件
所以我创建了构建目标
myacct_okc src/main/java **/*.java src/main/resources config/${environment}
然后为每个环境创建配置文件
local false local jboss jboss dev dev
我为每个env创建一个配置文件夹
project root |-- src | |-- main | | |-- java | | |-- resources | | | |-- config.xml | | | +-- config.properties | | |-- webapp | | | |-- META-INF | | | | +--context.xml | | |-- config | | | |-- local | | | | |--config.properties | | | | +--config.xml | | | |-- jboss | | | | |--config.properties | | | | +--config.xml | | | +-- dev | | | | |--config.properties | | | | +--config.xml +--pom.xml
现在当我使用任何配置文件运行这个pom.xml例如jboss时,不会复制config / jboss文件夹中的文件(或者我的意思是src / main / resources中的文件没有被替换)。
当我在maven构建上启用调试时,我可以看到副本被执行。
[DEBUG] resource with targetPath null directory C:\Projects\workspace\myaccount_build_4\myaccount\config\jboss excludes [] includes [] [DEBUG] ignoreDelta true [INFO] Copying 2 resources [DEBUG] file config.xml has a filtered file extension [DEBUG] copy C:\Projects\workspace\myaccount_build_4\myaccount\config\jboss\config.xml to C:\Projects\workspace\myaccount_build_4\myaccount\target\classes\config.xml [DEBUG] file config.properties has a filtered file extension [DEBUG] copy C:\Projects\workspace\myaccount_build_4\myaccount\config\jboss\META-INF\config.properties to C:\Projects\workspace\myaccount_build_4\myaccount\target\classes\META-INF\config.properties
但它不是替换文件。 这些文件仍然与src / main / resources相同。
Maven版本是3.0.4
有人可以帮我解决我做错的事吗?
我看过这个问题 。 这提供了一个解决方案,但我想覆盖文件而不是排除它们然后复制。
我相信你必须在复制资源执行中将你的资源添加到maven-resources-plugin。
maven-resources-plugin copy-config copy-resources copy-resources ${project.build.outputDirectory} src/main/java **/*.java src/main/resources config/${environment}
在我添加filtering= true
之后它工作了
myacct_okc src/main/java **/*.java true src/main/resources true config/${environment}