1

编辑:

我基本上遇到了以下记录的问题。我正在使用 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)

4

2 回答 2

2

您是否看过onejar-maven-plugin。它以一种直接的方式做你想做的事。

于 2009-06-29T23:20:34.193 回答
0

问题是我在 applicationContext 中使用了“spring-util”命名空间。尽管我将 spring-beans 作为项目依赖项,因此将其添加到我的类路径中,但无法解析命名空间处理程序。由于我只在一次使用 util:list 时决定将其从上下文中删除。从那里我可以毫无问题地构建我的 jar。我不确定真正的问题是否在于 maven 程序集如何生成 jar 文件,或者它是否是弹簧问题。无论哪种方式,我都有一个解决方法。

于 2009-06-29T18:42:42.300 回答