Domanda

Ho un grande progetto Java con un gran numero di dipendenze fra i file jar. Quando provo ad eseguire il progetto (utilizzando exec) da Eclipse o Netbeans, Maven genera un'eccezione, che si rivela essere un troppo grande numero di voci nel classpath (solo 2/3 delle voci necessari sono inclusi). Qualcuno sa una soluzione per questo? (Tranne dalla costruzione di un vaso eseguibile ed eseguirlo dal terminale.) E 'possbile "estendere" il "classpath-buffer" -Size?

È stato utile?

Soluzione

Questo è un exec Maven plug-bug, è documentato in MEXEC-68 , il giornalista ha creato una patch quindi spero che si risolva al più presto.

Una soluzione potrebbe essere quella di aggiungere il percorso di classe per il file manifesto utilizzando questa configurazione per l'esperto-jar-plugin, aggiungere le dipendenze a una cartella e aggiungere solo quella cartella al envvar CLASSPATH.

Ad esempio:

<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>

Questo aggiungerà alla manifesta qualcosa come:

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

Se questo vasi sono in una cartella CLASSPATH, è possibile eseguire il JAR utilizzando Maven exec plugin di Hidding classpath con qualcosa di simile:

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

Ho usato -Dexec.classpathScope = "test" per rendere il plugin ignorare le dipendenze e aggiungere solo quelle a prova di portata.

Altri suggerimenti

Questo problema è stato risolto in Netbeans 6.10M1. Si prega di dare un'occhiata al Bug 188.864 . Se si dispone di una versione precedente, è ancora possibile risolvere il problema da soli (devi solo per modificare un file XML all'interno org-NetBeans-modules-maven.jar).

Quindi, non dimenticate di controllare Maven Best Practices ( http://wiki.netbeans.org / MavenBestPractices # Binding_Maven_goals_to_IDE_actions ) dove viene spiegato come associare gli obiettivi Maven per Ide azioni.

Saluti,

Mach

In Java 6 (che spero di utilizzare) è possibile utilizzare i caratteri jolly nelle voci classpath. Per la sintassi esatta controllare questa pagina Impostare il classpath e di ricerca per la sezione giusta cercando "Understanding the class path and package names".

In alternativa si tenta accorciando i percorsi mettendo tutti i barattoli richiesti in una singola cartella con un breve sentiero. per esempio. C:\jars\

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top