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?

26
demandé sur Gray 2009-11-17 23:29:38

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.

32
répondu cetnar 2009-11-17 21:33:08

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.

9
répondu Pascal Thivent 2009-11-17 21:20:52

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>
0
répondu Georgy Gobozov 2013-08-02 15:36:26