adição de recursos adicionais a um pom maven
Pergunta
Eu tenho um super pom definido em que eu especificar um diretório "recursos" para obter recursos. Em um dos meus projetos, meu pom estende esse super-pom, e eu gostaria de adicionar um recurso adicional. Eu tentei:
<resources>
<resource>
<targetPath>/</targetPath>
<directory>additionalDir</directory>
</resource>
</resources>
Mas isso resulta em única additionalDir estar nos recursos e não inclui recursos do super pom. Existe uma maneira de estender os recursos do super pom?
Solução
O comportamento que você descreveu é esperado.
Lembre-se que o seu super POM está herdando de Maven padrão POM e praticamente qualquer plug-in que você define no seu pom efetivamente substitui a configuração no POM padrão. Como exemplo, para permitir filtragem no recurso padrão, você tem que especificar o caminho no seu POM. Você pode fazer isso:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
Não esta:
<resources>
<resource>
<filtering>true</filtering>
</resource>
</resources>
O diretório padrão não borbulhar para você, mesmo que você tenha especificado-lo lá. Pode haver um MOJO especial para fazer isso por você, mas eu não poderia encontrar um.
Outras dicas
Veja build-auxiliar-maven-plugin página uso de.
Sim, o Maven substituições recursos do POM pai quando redefinindo nova seção de recursos.
No entanto, uma maneira simples de adicionar recursos é
- Remova a seção de recursos do seu POM
- Mostrar O POM eficaz
- Copie os recursos de seu POM eficaz em seu projeto
- Substitua caminhos absolutos com os relativos
- Adicione seus recursos adicionais
Eu sei que esta questão é muito velho agora, mas talvez alguém vai encontrar este útil:
Você pode facilmente fazer isso usando o plugin de recursos Maven.
Basicamente, o que ele faz por padrão (invocando os recursos: meta recursos) está movendo o conteúdo de todos os diretórios listados na seção de build / recursos usando o filtro declarou na ${project.build.outputDirectory}
Se agora você deseja adicionar alguns recursos adicionais sem influenciar estas seções, você pode simplesmente mover os recursos lá mesmo. Um não, isso faz arrastar não média e deixá-la cair lá.
Os Maven Resources Plugin
provides um objetivo chamado resources:copy-resources
que faz exatamente isso para você: arquivos de enfrentamento usando filtros de um lugar para outro, ou como diz o plug-in doc:
Você pode usar o mojo de cópia de recursos para copiar recursos que não estão no layout maven padrão ou não declarado no elemento build / recursos e anexá-lo a uma fase
A vantagem óbvia em comparação com o build-auxiliar, que é sugerido em outras soluções, é que, enquanto o build-auxiliar só é capaz de agir durante a fase generate-sources
, os recursos plugin funciona em qualquer fase. (Apesar de que seria sábio para executá-lo antes da fase de embalagem)
Um exemplo completo de como usar isso é fornecido aqui , como parte dos plugins projetar página.
O que isto faz é lidar o conteúdo do diretório de recursos não listados "src/non-packaged-resources
"
em "${basedir}/target/extra-resources
". Mas desde que o plugin jar (que cria o arquivo jar) basicamente cria um arquivo zip do diretório "${project.build.outputDirectory}
", você pode querer colocá-lo lá.