Maven2 aplicação de filtragem para o arquivo em tipo de embalagem pom
-
19-09-2019 - |
Pergunta
Eu sou novo para Maven. Eu quero usar a filtragem em um projeto multimodule. O tipo de embalagem do pom-mãe é definido como pom. A estrutura do projeto é a seguinte:
pom.xml
|
|______MODULE1
| |
| pom.xml
| File1_needed_to_be_filtered
|
File2_needed_to_be_filtered
Por favor note que Module1 é também projecto multimodule. Então, por favor me dizer como posso aplicar a filtragem para file1 e file2. E se eu aplicar a filtragem para file1, então onde vai o arquivo processado ser armazenados (Desde arquivo pom cuja embalagem tipo é pom não criar qualquer pasta de destino nomeado!) Por favor me ajude, pois isso é muito importante para mim e esta questão é abordada em nenhum outro lugar na internet.
Solução
Você pode usar o maven-assembly-plugin - com um ' formato dir'(embora se há sempre mais de um arquivo, pode fazer sentido para torná-lo um arquivo de algum tipo). A descritor formato permite que você filtro. Isso deve funcionar com a hierarquia pom eo arquivo que você descreve acima.
No entanto, eu recomendo colocar estes em irmãos módulos em vez do pai. Isso mantém a lógica fora de seu pom agregador, e (uma vez que você começar a fazer isso) você pode decidir que é mais fácil de usar a montagem de distribuí-los junto com seus outros componentes, que você iria querer um módulo para qualquer maneira.
Outras dicas
Para ter recursos de filtro Maven ao copiar, definir a filtragem para true
para o diretório do recurso em seu pom.xml:
<project>
...
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filterineg>
</resource>
</resources>
</build>
</project>
Mas se você quiser recursos de filtro, não colocá-los em um projeto com uma embalagem do tipo pom
, isso não faz sentido (para a razão que você se deu). Na verdade, eu não entendo o que você está tentando conseguir (uma vez que você sabe que este não é como as coisas funcionam).