Баночка зависимостей Maven не может использоваться - PullRequest
1 голос
/ 29 июня 2009

EDIT:

Я в основном сталкиваюсь со следующей документированной проблемой . Я использую плагин сборки 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 ]

2 голосов
/ 30 июня 2009

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

0 голосов
/ 29 июня 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...