Кувшин зависимостей Maven не используется

РЕДАКТИРОВАТЬ:

Я в основном сталкиваюсь со следующей задокументированной проблемой. Я использую плагин сборки maven для создания jar-файла, который включает мои зависимости, чтобы мой проект можно было запустить из одного файла. Тем не менее, файл JAR создается неправильно, кажется. Ниже была попытка попытаться обойти проблему. Кто-нибудь сталкивался с этим раньше?

Поэтому я пытаюсь создать файл jar, содержащий все мои зависимости, упакованные и распакованный архив проекта.

Я пытался сделать что-то с эффектом

<assembly>
  <id>jar-with-dependencies-packed</id>
  <formats>
    <format>jar</format>
  </formats>
  <includeBaseDirectory>false</includeBaseDirectory>
  <dependencySets>
    <dependencySet>
      <unpack>true</unpack>
      <unpackOptions>
          <includes>
              <include>artifactname</include>
          </includes>
      </unpackOptions>
      <scope>runtime</scope>
      <outputDirectory>lib</outputDirectory>
    </dependencySet>
  </dependencySets>
</assembly>

Тем не менее, полученный файл JAR включает в себя только каталог META-INF... Когда я говорю, чтобы распаковать, но распаковать только мои включает, означает ли это, что оригинальные файлы JAR не включены?

Когда я запускаю флягу, я получаю следующее

Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace http://www.springframework.org/schema/util
Offending resource: class path resource [applicationContext.xml]

at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85)
at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:80)
at org.springframework.beans.fac

tory.xml.BeanDefinitionParserDelegate.error(BeanDefinitionParserDelegate.java:281)

2 ответа

Решение

Если бы вы взглянули на http://code.google.com/p/onejar-maven-plugin/. Он делает то, что вы хотите, простым способом.

Проблема заключалась в том, что я использовал пространство имен "spring-util" в моем applicationContext. Несмотря на то, что Spring-bean был зависимостью проекта и поэтому был добавлен в мой путь к классам, обработчик пространства имен не может быть разрешен. Поскольку я использую только util: list, я решил удалить его из контекста. Оттуда я смог построить свою банку без проблем. Я не уверен, что реальная проблема где-то в том, как maven сборка генерирует jar-файл, или это весенняя проблема. В любом случае, у меня есть обходной путь.

Другие вопросы по тегам