Como posso criar um perfil de compilação do Maven para copiar arquivos condicionalmente?
Eu novo para maven e estou tentando criar pom.xml para construir os arquivos de guerra para diferentes ambientes usando perfis
Então eu criei o alvo de compilação
<build>
<finalName>myacct_okc</finalName>
<resources>
<resource>
<directory>src/main/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>config/${environment}</directory>
</resource>
</resources>
</build>
E então criei os perfis para cada ambiente
<profiles>
<profile>
<id>local</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<environment>local</environment>
</properties>
</profile>
<profile>
<id>jboss</id>
<properties>
<environment>jboss</environment>
</properties>
</profile>
<profile>
<id>dev</id>
<properties>
<environment>dev</environment>
</properties>
</profile>
e eu crio uma pasta de configuração para cada 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
Agora, quando eu executo este pom.xml com qualquer perfil, por exemplo, jboss, os arquivos da pasta config / jboss não estão sendo copiados (ou eu quero dizer que os arquivos em src / main / resources não estão sendo substituídos).
quando eu habilitei a depuração no build do maven, consigo ver a cópia sendo executada.
[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
Mas não está substituindo os arquivos. Os arquivos ainda são os mesmos de src / main / resources.
Versão Maven é 3.0.4
Alguém pode me ajudar o que estou fazendo errado?
Eu olhei para istoquestão. Isso fornece uma solução, mas eu quero substituir os arquivos em vez de excluí-los e, em seguida, copiar.