编辑:
我基本上遇到了以下documented issue。我正在使用maven程序集插件生成包含我的依赖项的jar文件,以便我的项目可以从单个文件运行。但是,似乎没有正确构建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文件不包括在内?
当我运行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)
答案 0 :(得分:2)
你看看onejar-maven-plugin。它以直截了当的方式做你想做的事。
答案 1 :(得分:0)
问题是我在applicationContext中使用了“spring-util”命名空间。虽然我将spring-beans作为项目依赖项,因此它被添加到我的类路径中,但是无法解析名称空间处理程序。由于我有一次只使用util:list,所以我决定将它从上下文中删除。从那里我能够毫无问题地建造我的罐子。我不确定真正的问题是否在maven程序集如何生成jar文件或者是否是一个弹簧问题。无论哪种方式,我都有一个解决方法。