non so che cosa sarebbe andato in config
, ma lib
e bin
è facile.
Per copy all dependencies to a folder solo fare questo:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/dist/lib
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
Per riversare il vaso in una cartella bin fare questo (reference page):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<finalName>${project.artifactId}</finalName>
<outputDirectory>${project.build.directory}/dist/bin</outputDirectory>
</configuration>
</plugin>
Ah, ci sono requisiti aggiuntivi:
Bottom line: voglio fare tutto questo, ma non voglio modificare il comportamento dei "target" predefiniti come c Ompile e il pacchetto ecc
In questo caso userei un profilo per attivare questa opzione:
<profile>
<id>dist</profile>
<build>
<plugins>
<!-- insert stuff from above here -->
</plugins>
</build>
</profile>
Ora si farebbe mvn clean package -Pdist
per ottenere la vostra directory dist e se non si aggiunge il profilo, ottieni un comportamento predefinito.
Fondamentalmente, le cose funzionano in modo diverso da come fanno nella formica. Non ci sono obiettivi, ci sono solo fasi del ciclo di vita e obiettivi del plugin.
è possibile eseguire una fase di ciclo di vita, che chiamerà tutti gli obiettivi Maven dei plugin che sono destinate a tutte le fasi fino a questo (ad esempio, se si fa mvn compile
, verranno eseguite le seguenti fasi: validate
, initialize
, generate-sources
, process-sources
, generate-resources
, process-resources
, compile
). Ma non esiste un modo (facile) per definire una fase del ciclo di vita denominata dist
.
Oppure è possibile eseguire un obiettivo plug-in specifico (è possibile eseguire più fasi e/o obiettivi plug-in). Per esempio. potresti scrivere il tuo plugin dist e chiamarlo usando mvn dist:dist
, ma non lo consiglierei perché stai usando le funzionalità esistenti e la soluzione del profilo dovrebbe essere una buona idea.
okay, quindi come sarebbe questa azione kick in? Eseguo 'pacchetto mvn'? Voglio fare qualcosa come 'maven dist' e farlo accadere (aggiornato nella domanda) .. è possibile? – jrharshath
+1 hm, utile. Domanda: dovrei fare ciò che voglio fare nel ciclo di vita del pacchetto o nella distribuzione? e perché? – jrharshath
@simpatico Credo che questo dovrebbe essere un commento alla domanda, non alla mia risposta, giusto? –