MAVEN-Ear-Plugin-Excluindo vários módulos, ou seja, potes, guerras etc.
-
20-09-2019 - |
Pergunta
Eu tenho usado o plug -in do Maven para criar meus arquivos de ouvido para um novo projeto. Eu notei na documentação do plug -in que você pode especificar instruções de exclusão para módulos. Por exemplo, a configuração do meu plugin é a seguinte ...
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<jboss>
<version>5</version>
</jboss>
<modules>
<!-- Include the templatecontroller.jar inside the ear -->
<jarModule>
<groupId>com.kewill.kdm</groupId>
<artifactId>templatecontroller</artifactId>
<bundleFileName>templatecontroller.jar</bundleFileName>
<includeInApplicationXml>true</includeInApplicationXml>
</jarModule>
<!-- Exclude the following classes from the ear -->
<jarModule>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<excluded>true</excluded>
</jarModule>
<jarModule>
<groupId>antlr</groupId>
<artifactId>antlr</artifactId>
<excluded>true</excluded>
</jarModule>
... declare multiple excludes
<security>
<security-role id="SecurityRole_1234">
<role-name>admin</role-name>
</security-role>
</security>
</configuration>
</plugin>
</plugins>
Essa abordagem é absolutamente boa com pequenos projetos, onde você diz 4-5 módulos a serem excluídos. No entanto, no meu projeto, tenho mais de 30 anos e acabamos de iniciar o projeto, pois ele expande isso provavelmente crescerá.
Além de declarar explicitamente declarações de exclusão por módulo, é possível usar curingas ou excluir todos os sinalizadores de dependências do MAVEN para incluir apenas os módulos que declaro e excluir todo o resto? Alguém está ciente de uma solução mais elegante?
Solução
Além de declarar explicitamente declarações de exclusão por módulo, é possível usar curingas ou excluir todos os sinalizadores de dependências do MAVEN para incluir apenas os módulos que declaro e excluir todo o resto?
o MAVEN-Ear-Plugin Não fornece esse recurso fora da caixa (e não acho que seja fácil configurar de qualquer maneira, um ouvido deve ser embalado com muita precisão). No entanto, o que não está claro aqui é como você obtém as dependências que você precisa excluir. Dependendo da sua resposta, pode haver várias maneiras de lidar com eles:
- Talvez você possa declarar alguns deles como opcionais se forem dependências de sua Artefatos para evitar recuperá -los de forma transmissível.
- Talvez você possa marcar algumas dependências como "fornecidas" (e colocá -las nos pais, apenas o que você deseja no pom da orelha).
Difícil de responder sem ver a imagem inteira.
Outras dicas
Não tenho certeza se os curingas são suportados, mas é muito simples escrever seu próprio mojo. Você pode embrulhar o mojo existente e, em seguida, fazer uma configuração arbitrária de seu próprio design, como sua sintaxe curinga.
Melhor ainda, você pode enviar seu mojo para a equipe do Maven (!)
Eu estava enfrentando um problema semelhante. Mas isso ocorreu porque eu tinha um projeto de módulo multi com vários frascos com o escopo fornecido, acabei de remover a etiqueta pai do pom filho, tornando -o independente. e, em seguida, use incluir para incluir tantos potes de que preciso.
espero que isto ajude!!!