2012-01-11 3 views
1

Недавно я добавил Apache Commons IO в небольшой проект, чтобы я мог закрепить файл журнала. Все прекрасно работает в моем IDE (IntelliJ), но когда я создаю исполняемую банку, Commons IO не там, так что я получаю:Apache Commons IO не добавляется в jar

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/io/input/TailerListener.

Commons IO был добавлен к моему POM:

<dependency> 
    <groupId>commons-io</groupId> 
    <artifactId>commons-io</artifactId> 
    <version>2.1</version> 
</dependency> 

У меня никогда не было проблем с добавленными зависимостями, как это раньше. Что мне не хватает?

ответ

0

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

Причина в том, что при определенных обстоятельствах это расточительно. Представьте, что у вас есть две банки: a.jar и b.jar. Оба полагаются на общее количество апачей. Вероятно, было бы более эффективно (по пространству) просто иметь каждый отдельный и загруженный из общего каталога библиотеки.

Если вы хотите, так называемый «жирный баночку» (или любой другой подходящий термин для иметь все ваши зависимости в одной баночке), вам нужно использовать плагин как этот:

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <version>2.2.1</version> 
    <configuration> 
     <descriptorRefs> 
     <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
     <archive> 
     <manifest> 
      <mainClass>com.test.App</mainClass> 
     </manifest> 
     </archive> 
    </configuration> 
    <executions> 
     <execution> 
     <id>make-assembly</id> <!-- this is used for inheritance merges --> 
     <phase>package</phase> <!-- bind to the packaging phase --> 
     <goals> 
      <goal>single</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 
+0

I нашел мою проблему, IntellJ не добавлял банку по какой-то причине. Повторная установка настроек артефакта устранила проблему. – jwforsyth

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