Domanda

Sto usando il plugin EAR Maven per creare i miei file per le orecchie per un nuovo progetto. Ho notato nella documentazione plug-in è possibile specificare escludere le dichiarazioni per i moduli. Per esempio la configurazione per il mio plugin è come segue ...

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

Questo approccio è assolutamente bene con progetti di piccole dimensioni in cui devi dire 4-5 moduli da escludere. Tuttavia, nel mio progetto ho 30+ e abbiamo appena iniziato il progetto in modo mentre si espande questa è destinata a crescere.

Oltre esplicitamente dichiarando esclude dichiarazioni per modulo è possibile utilizzare i caratteri jolly o ed escludere tutte le dipendenze Maven bandiera per includere solo quei moduli dichiaro ed escludere tutto il resto? C'è qualcuno che è a conoscenza di una soluzione più elegante?

È stato utile?

Soluzione

  

Oltre esplicitamente dichiarando esclude dichiarazioni per modulo è possibile utilizzare i caratteri jolly o ed escludere tutte le dipendenze Maven bandiera per includere solo quei moduli dichiaro ed escludere tutto il resto?

Il Maven-ear-plugin non fornisce questa funzionalità out-of-box (e non credo che sarebbe stato facile da configurare in ogni caso, un orecchio devono essere confezionati in modo molto preciso). Tuttavia, ciò che non è chiaro qui è come ottenere le dipendenze è necessario escludere. A seconda della risposta, ci potrebbero essere diversi modi per gestirli:

  • Si potrebbe forse dichiarare alcuni di loro come optional se sono dipendenze di tuoi per evitare artefatti per recuperarli transitivamente.
  • Si potrebbe forse segnare alcune dipendenze come "condizione" (e metterli in un POM genitore, ridichiarare solo quello che vuoi nel POM del EAR).

Difficile rispondere senza vedere l'intero quadro però.

Altri suggerimenti

Non sono sicuro sul fatto che i caratteri jolly sono supportati, ma è molto semplice da scrivere il proprio mojo. Si potrebbe avvolgere il mojo esistente e poi prendere un po 'di configurazione arbitraria del vostro proprio disegno, come ad esempio la sintassi jolly.

Ancora meglio, si potrebbe inviare il tuo mojo al team Maven (!)

stavo affrontando un problema simile. ma che è stato perché ho avuto un progetto pluriennale modulo con alcuni vasetti avente lo scopo previsto, ho appena rimosso il tag genitore dal pom orecchio bambino, ci rendendo indipendente. e quindi utilizzando includere per includere il maggior numero di barattoli di cui ho bisogno.

Spero che questo aiuti !!!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top