2009-07-01 2 views
2

У меня есть большой проект Java с большим количеством зависимостей файла jar. Когда я пытаюсь запустить проект (используя exec) из Eclipse или Netbeans, Maven выдает исключение, которое оказывается слишком большим количеством записей в пути к классам (только 2/3 необходимых записей включены). Кто-нибудь знает обходное решение для этого? (За исключением создания исполняемого банку и его запуска из терминала.) Возможно ли «расширить» «classpath-buffer» -size?Как разрешить плагин Maven exec: слишком много ошибок в classpath?

ответ

2

Это ошибка плагина Maven exec, она задокументирована в MEXEC-68, репортер создал патч, поэтому я надеюсь, что он скоро будет решен.

Одним из способов решения проблемы было бы добавить путь к файлу манифеста с помощью этой конфигурации для maven-jar-plugin, добавить зависимости в папку и добавить только эту папку в envvar CLASSPATH.

Например:

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

Это добавит к манифесту что-то вроде:

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

Если JAR-файлы находятся в папке CLASSPATH, вы можете запустить JAR с помощью Maven EXEC плагин Hidding на с чем-то классы, как:

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

Я использовал -Dexec.classpathScope = "тест" для мака e плагин игнорирует зависимости и добавляет только те, которые находятся в тесте scope.

0

В Java 6 (который, я надеюсь, вы используете), вы можете использовать подстановочные знаки в записях pathpath. Для точного синтаксиса проверьте эту страницу Setting the classpath и выполните поиск в нужном разделе, выполнив поиск «Understanding the class path and package names».

Или вы пытаетесь укоротить пути, разместив все необходимые банки в одной папке с коротким путем. например C:\jars\

+0

я уже сократил путь к C: \ \ младший не повезло, все еще много для ехес команды –

+0

И на пути к классам маски? – jitter

+0

Использование Java 5, и это не в моих силах, чтобы его обновить (хотя клиенту требуется обновление, хотя) –

1

Эта проблема исправлена ​​в Netbeans 6.10M1. Пожалуйста, взгляните на Bug 188864. Если у вас более старая версия, вы все равно можете исправить это самостоятельно (вам просто нужно отредактировать xml-файл внутри org-netbeans-modules-maven.jar).

Затем, не забудьте проверить Maven Best Practices (http://wiki.netbeans.org/MavenBestPractices#Binding_Maven_goals_to_IDE_actions), где объясняется, как привязать цели maven к действиям IDE.

С уважением,

Маха

Смежные вопросы