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?

Foi útil?

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!!!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top