Pregunta

He estado usando el plugin de Maven EAR para la creación de los archivos de mi oído para un nuevo proyecto. Noté en la documentación plug-in puede especificar sentencias de exclusión para los módulos. Por ejemplo, la configuración del plug-in para mi es la siguiente ...

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

Este enfoque es absolutamente bien con pequeños proyectos donde hay que dicen 4-5 módulos para excluir. Sin embargo, en mi proyecto tengo 30 + y sólo Acabo de comenzar el proyecto de manera que se expande esto es probable que crezca.

Además de declarar explícitamente excluye declaraciones por módulo es posible utilizar comodines o excluir a toda la bandera y dependencias de Maven para incluir sólo aquellos módulos Declaro y excluir todo lo demás? ¿Hay alguien consciente de una solución más elegante?

¿Fue útil?

Solución

  

Además de declarar explícitamente excluye declaraciones por módulo es posible el uso de comodines o y no incluyen toda la bandera dependencias de Maven para incluir sólo aquellos módulos que declarar y excluir todo lo demás?

El maven-oreja-plugin no proporciona esta función fuera de la caja (y no creo que sería fácil de configurar todos modos, una oreja debe ser empaquetado de forma muy precisa). Sin embargo, lo que no está claro aquí es la forma de obtener las dependencias que necesita excluir. Dependiendo de su respuesta, podría haber varias formas de manejarlos:

  • Usted tal vez podría declarar algunos de ellos como opcional si son dependencias de sus para evitar artefactos para recuperarlos de forma transitiva.
  • Usted tal vez podría marcar algunas dependencias como "proporcionado" (y ponerlos en un pom padres, solamente redeclare lo que quiere en el POM de la oreja).

Es difícil de responder sin ver toda la imagen sin embargo.

Otros consejos

No está seguro acerca de si los comodines son compatibles, pero es muy fácil de escribir su propio mojo. Se podría envolver el mojo existente y luego tomar un poco de configuración arbitraria de su propio diseño, como su sintaxis de comodín.

Mejor aún, usted podría presentar su mojo al equipo experto (!)

i estaba frente a un problema similar. pero eso fue porque tenía un proyecto de varios módulos con varios frascos con el alcance previsto, i acaba de quitar la etiqueta principal del pom del oído del niño, no por lo que es independiente. y luego usando incluyen incluir tantos frascos que necesito.

Esperamos que esto ayude !!!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top