Frage

Ich habe die Maven EAR benutze für Plugin-Ohr-Dateien für ein neues Projekt zu erstellen. Ich habe bemerkt, in der Plugin-Dokumentation, die Sie ausschließen Anweisungen für Module angeben. Zum Beispiel der Konfiguration für mein Plugin ist wie folgt ...

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

Dieser Ansatz ist absolut in Ordnung mit kleinen Projekten, in denen Sie zu sagen haben 4-5 Module auszuschließen. in meinem Projekt habe ich mehr als 30 aber, und wir haben gerade erst begonnen, das Projekt so wie es dies wahrscheinlich wachsen erweitert ist.

deklarieren Neben explizit Exclude-Anweisungen pro Modul ist es möglich, Platzhalter zu verwenden oder und verstehen sich inklusive aller Maven Flagge Abhängigkeiten nur diejenigen Module umfassen i erklären und alles andere ausschließen? Ist jemand bewusst eine elegantere Lösung?

War es hilfreich?

Lösung

  

Neben ausdrücklich ausschließen erklärt Anweisungen pro Modul ist es möglich, Platzhalter zu verwenden oder und schließen jede Flagge maven Abhängigkeiten nur diejenigen Module umfassen ich erklären und verstehen sich inklusive alles andere?

Die maven-Ohr-Plugin verfügt nicht über diese Funktion out-of-box (und ich glaube nicht, dass es trotzdem einfach zu konfigurieren sein würde, muss ein Ohr sehr genau verpackt werden). Doch klar ist nicht hier, was ist, wie Sie die Abhängigkeiten erhalten Sie ausschließen müssen. Je nach Ihrer Antwort, könnte es mehr Möglichkeiten, sie zu behandeln:

  • Sie könnten vielleicht einige von ihnen als optional deklarieren, wenn sie Abhängigkeiten von Sie Artefakte zu vermeiden, dass sie transitively abzurufen.
  • Sie könnten vielleicht einige Abhängigkeiten markieren als „zur Verfügung gestellt“ (und sie in einem übergeordneten pom, neu deklarieren nur das, was Sie in der POM der EAR wollen).

Schwer zu beantworten, ohne jedoch das ganze Bild zu sehen.

Andere Tipps

Nicht sicher, ob Platzhalter werden unterstützt, aber es ist sehr einfach Ihre eigene mojo zu schreiben. Sie könnten die bestehenden mojo wickeln und dann einige beliebige Konfiguration von Ihrem eigenen Design, wie Ihre Wildcard-Syntax nehmen.

Noch besser ist es, Sie könnten Ihren mojo auf das Maven-Team einreichen (!)

Ich war ein ähnliches Problem. aber das war, weil ich ein Multi-Modul-Projekt mit mehreren Gläsern hatte den vorgesehenen Umfang haben, ich nur den übergeordneten Tag von dem Kind Ohr pom entfernt, da durch sie unabhängig zu machen. und dann sind unter Verwendung von so viele Gläser enthalten ich brauche.

hoffe, das hilft !!!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top