Maven: comment exporter un projet avec des sources et des dépendances
J'ai un projet Maven avec des dépendances dans le repo et d'autres choses. Je veux "exporter" ses sources avec toutes les dépendances afin que je puisse l'ouvrir avec succès dans IDE sans que Maven ne s'exécute sur une machine.
Lors de l'empaquetage du projet dans le fichier war, toutes les dépendances sont emballées.
Donc, je veux avoir toutes ces dépendances plus mes sources rassemblées en un seul endroit, qui peut être ouvert avec IDE (Eclipse ou IDEA) toutes ces bibliothèques détectées?
3 réponses
Essayer maven-dépendance-plugin avec l'objectif copier-dépendances
<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 l'intégration maven et IDE (pour Eclipse p. e.)? Maven peut générer un projet pour un IDE particulier et inclure tous les fichiers JAR dépendants en tant que variables (pointant vers ces fichiers JAR dans le référentiel local), il n'est donc pas nécessaire d'utiliser les fichiers copy dependecies dans le sous-dossier.
En fait, il n'y a rien qui va créer un bundle avec des sourceset dépendances hors de la boîte. Pour cela, vous devrez utiliser une combinaison de certains plugins.
Pour les dépendances, le Plugin Maven 2 Dependency et son copy-dependencies
aidera comme indiqué par cetnar.
Pour les sources, vous pourriez avoir besoin du Plugin Source Maven et de son source:aggregate
objectif (ou peut-être le Plugin D'assemblage Maven et le {[2 prédéfini]} descripteur 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 Plugin D'assemblage Maven.
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>