Frage

Ich versuche maven2 zu verwenden, um ein axis2 Projekt zu erstellen. Mein Projekt ist als übergeordnetes Projekt mit AAR, Krieg und EAR-Module konfiguriert. Als ich das übergeordnete Projekt Paket Ziel laufen, zeigt die Konsole einen erfolgreichen Aufbau und alle Dateien erstellt werden. Doch die AAR-Datei von AAR Projekt erzeugt wird, nicht in dem generierten WAR-Projekt enthalten. Das AAR-Projekt wird als eine Abhängigkeit von WAR-Projekt aufgeführt. Wenn ich ausdrücklich das Paket Ziel des IST ausführen, wird die AAR-Datei dann in der WAR-Datei enthalten ist.

Warum würde die übergeordnete Paket Ziel nicht die notwendige Abhängigkeit, während das Paket Ziel des Kindes läuft das?

Ich bin mit der Maven-Krieg-Plugin v2.1-alpha-2 in meinem Krieg Projekt.

Eltern POM:

<parent>
    <groupId>companyId</groupId>
    <artifactId>build</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.nationwide.nf</groupId>
<artifactId>parent</artifactId>
<packaging>pom</packaging>
<version>1.0.0-SNAPSHOT</version>
<modules>
    <module>ws-war</module>
    <module>ws-aar</module>
    <module>ws-ear</module>
</modules>

AAR POM:

<parent>
    <artifactId>parent</artifactId>
    <groupId>companyId</groupId>
    <version>1.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>companyId</groupId>
<artifactId>ws-aar</artifactId>
<version>1.0.0-SNAPSHOT</version>
<description/>
<packaging>aar</packaging>
<dependencies>...</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.5</source>
                <target>1.5</target>
            </configuration>
        </plugin> 

        <plugin>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
            <version>1.4</version>
            <configuration>...</configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>wsdl2code</goal>
                    </goals>
                    <id>axis2-gen-sources</id>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.axis2</groupId>
            <artifactId>axis2-aar-maven-plugin</artifactId>
            <version>1.4</version>
            <extensions>true</extensions>
            <configuration>...</configuration>
        </plugin>
    </plugins>
</build>

IST POM:

<parent>
    <artifactId>parent</artifactId>
    <groupId>companyId</groupId>
    <version>1.0.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>companyId</groupId>
<artifactId>ws-war</artifactId>
<packaging>war</packaging>
<version>1.0.0-SNAPSHOT</version>
<description/>
<dependencies>
    <dependency>
        <groupId>companyId</groupId>
        <artifactId>ws-aar</artifactId>
        <type>aar</type>
        <version>1.0.0-SNAPSHOT</version>
    </dependency>
    .
    .
    .
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.1-alpha-2</version>
            <configuration>
                <warName>appName</warName>
            </configuration>
        </plugin>
    </plugins>
</build>

Danke, Joe

War es hilfreich?

Lösung

Ich konnte meine Maven-Build erhalten ordnungsgemäß funktioniert, indem das folgende Plugin zum ws-Krieg pom-Datei hinzufügen:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <phase>process-classes</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>
                            ${project.build.directory}/${project.build.finalName}/WEB-INF/services
                        </outputDirectory>
                        <includeArtifactIds>
                            ws-aar
                        </includeArtifactIds>
                    </configuration>
                </execution>
            </executions>
        </plugin>

Andere Tipps

Haben Sie versucht, das „Typen“ Element in Ihren Abhängigkeiten verwenden? Zum Beispiel:

<dependency>
  <groupId>group-a</groupId>
  <artifactId>artifact-b</artifactId>
  <version>1.0</version>
  <type>aar</type>
</dependency>

Es ist schwer, mit Sicherheit zu sagen, was dein Problem ist ohne Ihre tatsächlichen pom-Dateien zu sehen.

Update:

Was passiert, wenn aus dem übergeordneten Projekt, benutzen Sie:

 mvn clean install
  1. Ist „install“ haben kein anderes Verhalten als „Paket“ so weit wie Ihr Problem betroffen?
  2. Haben Sie die .aar Datei in Ihrem lokalen Maven-Repository sehen (~ / .m2 / repository / com / mycompany /.../)?

Als Seite beachten, ich habe nie mit dem Maven Krieg Plugin sehr glücklich gewesen. Ich habe immer mit der Maven-Montage-Plugin landet. Es scheint nur, besser zu arbeiten und ist konsequenter. Also, stellen Sie sicher, dass Sie die neueste Version von Maven verwenden (2.0.9). Ich verbrachte einen halben Tag ein ähnliches Problem zu kämpfen, die in der aktuellen Version behoben.

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