Domanda

Ho un progetto Maven che si compone di diversi moduli. Ho un singolo file POM che uso per richiamare l'accumulo di tutti i moduli dipendenti. Quello che voglio fare è quello di copiare un gruppo di file in un'unica posizione e comprimere una volta, dopo che il pacchetto intero ciclo di vita di tutti i sotto-moduli è stata completata.

Ho guardato in antrun, ma non può vedere come fare funzionare una volta. Attualmente viene eseguito durante la fase di confezione di ciascun modulo. Ecco il mio file principale POM (semplificato)

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>parent</artifactId>
<name>project</name>
<version>1.0</version>
<packaging>pom</packaging>
<modules>
    <module>../module1</module>
    <module>../module2</module>
</modules>
<dependencies>
    ...
</dependencies>
<build>
    <plugins>
        <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
                <execution>
                    <phase>package</phase>
                    <configuration>
                        <tasks>
                            <mkdir dir="product" />
                            <copy todir="product">
                                <fileset dir="../module1/doc/release">
                                    <include name="*.pdf" />
                                </fileset>
                                <fileset dir="../module2/doc/release">
                                    <include name="*.pdf" />
                                </fileset>
                                <fileset dir="../module1/target">
                                    <include name="*.war" />
                                </fileset>
                                <fileset dir="../module2/target">
                                    <include name="*.war" />
                                </fileset>
                            </copy>
                            <copy file="app.properties" todir="cesium" />

                            <zip basedir="product" destfile="dist.zip"></zip>

                        </tasks>
                    </configuration>
                    <goals>
                        <goal>run</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

    </plugins>
</build>

<properties>
    ...
</properties>

Speriamo che sia chiaro quello che sto cercando di fare. Voglio solo il compito antrun avvenga dopo il ciclo di vita del pacchetto, e solo una volta, non per ogni modulo.

ho capito che io non potrei essere avvicinando questo passaggio nel modo giusto, ma sono poco chiaro il modo migliore per aproach questo con Maven. Ogni pensiero apprezzato.

È stato utile?

Soluzione

Prova il Maven Assemblea Plugin .

Qui sono gli esempi Maven Assemblea Plugin .

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