Question

J'ai un grand projet Java avec un grand nombre de dépendances de fichiers jar. Lorsque je tente d'exécuter le projet (en utilisant exec) d'Eclipse ou Netbeans, Maven lance une exception qui se révèle être un certain nombre d'entrées trop grand sur le chemin de classe (seulement 2/3 des entrées nécessaires sont inclus). Est-ce que quelqu'un connaît une solution de contournement pour cela? (Sauf de la construction d'un pot exécutable et l'exécuter à partir du terminal.) Est-ce possbile à « étendre » le « classpath-buffer » -Taille?

Était-ce utile?

La solution

Ceci est un bug du plugin exec Maven, il est documenté dans MEXEC-68 , le journaliste a créé un patch donc j'espère qu'il sera bientôt résolu.

Une solution serait d'ajouter le classpath au fichier manifeste en utilisant cette configuration pour le maven-plugin-pot, ajoutez les dépendances dans un dossier et ajouter tout ce dossier à la envvar CLASSPATH.

Par exemple:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        ...
        <configuration>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
            </manifest>
          </archive>
        </configuration>
        ...
      </plugin>
    </plugins>
  </build>
  ...
</project>

Cela va ajouter à quelque chose comme manifeste:

Class-Path: plexus-utils-1.1.jar commons-lang-2.1.jar

Si ce JARs sont dans un dossier CLASSPATH, vous pouvez exécuter votre JAR en utilisant le plugin maven exec hidding le classpath avec quelque chose comme:

mvn exec:exec [...] -Dexec.classpathScope="test"

je -Dexec.classpathScope = « test » pour faire le plug-in ignorer les dépendances et ajoutez seulement ceux dans le test de portée.

Autres conseils

Ce problème est résolu dans Netbeans 6.10M1. S'il vous plaît jeter un oeil à Bug 188864 . Si vous avez une version plus ancienne, vous pouvez toujours corriger vous-même (il vous suffit de modifier un fichier xml dans org-netbeans-modules-maven.jar).

Alors, ne pas oublier de vérifier les meilleures pratiques Maven ( http://wiki.netbeans.org / MavenBestPractices # Binding_Maven_goals_to_IDE_actions ) où il est expliqué comment lier les objectifs Maven aux actions IDE.

Cordialement,

Mach

En Java 6 (que j'espère que vous utilisez), vous pouvez utiliser des caractères génériques dans les entrées de classpath. Pour connaître la syntaxe exacte vérifier cette page Réglage du classpath et la recherche à la section droite en cherchant "Understanding the class path and package names".

Ou vous essayez de raccourcir les chemins en plaçant tous les pots nécessaires dans un seul dossier avec un chemin court. par exemple. C:\jars\

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top