Кувшин зависимостей 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-файл, или это весенняя проблема. В любом случае, у меня есть обходной путь.