J'ai un projet Maven avec des dépendances dans le repo et tout ça. Je veux "exporter" ses sources avec toutes les dépendances afin de pouvoir l'ouvrir avec succès dans IDE sans que Maven s'exécute sur une machine.
Lors de l'empaquetage du projet dans un fichier war, toutes les dépendances sont emballées avec lui.
Donc, je veux avoir toutes ces dépendances et mes sources rassemblées en un seul endroit, qui peut être ouvert avec IDE (Eclipse ou IDEA) toutes ces bibliothèques détectées?
Essayez maven-dependency-plugin avec objectif copy-dependencies
<project>
[...]
<build>
<plugins>
<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}/alternateLocation</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
[...]
</project>
PS.
Connaissez-vous maven et l'intégration IDE (pour Eclipse pe)? Maven peut générer des projets pour des éléments particuliers IDE = et inclure tous les fichiers jar dépendants en tant que variables (pointant vers ces fichiers dans le référentiel local), il n'est donc pas nécessaire d'utiliser des dépendances de copie dans le sous-dossier.
En fait, il n'y a rien qui va créer un bundle avec les dépendances sources et hors de la boîte. Pour cela, vous devrez utiliser une combinaison de certains plugins.
Pour les dépendances, le Maven 2 Dependency Plugin et son copy-dependencies
aidera comme l'a souligné cetnar.
Pour les sources, vous pourriez avoir besoin du Maven Source Plugin et de son source:aggregate
objectif (ou peut-être le Maven Assembly Plugin et le descripteur src
prédéfini mais source:aggregate
est pratique pour les builds multi-modules).
Pour lier le tout ensemble (et peut-être décompresser les sources), j'utiliserais le Maven Assembly Plugin .
Guerre avec les sources
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>${build.sourceDirectory}</directory>
<targetPath>src</targetPath>
</resource>
</webResources>
</configuration>
</plugin>