【问题标题】:ClassNotFoundException in a library Project in a maven Projectmaven 项目中的库项目中的 ClassNotFoundException
【发布时间】:2014-04-18 18:16:23
【问题描述】:

在 Eclipse 中的 maven 项目中,我添加了一个普通的 Java- 项目作为库项目(使用 Java- 构建路径)。这工作得很好,直到我在这个库项目中编写了一个使用 org.apache.commons.codec.digest.DigestUtils 的方法。我在库项目的 java buildpath 属性中使用“外部 jar”添加了这个外部库,并作为 maven 依赖项:

<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>1.4</version>
</dependency>

在 Eclipse 中,两个项目都没有显示错误,但是在运行时它在库项目中给了我一个 ClassNotFoundException(顺便说一句。如果我在 maven 项目的源代码中使用完全相同的代码行,它就可以正常工作)

maven 项目在 tomcat7-server 上运行。

现在我的问题是:我该如何解决这个问题? Library 项目也被其他项目使用,因此仅将代码复制到 Maven 项目中是不太受欢迎的解决方案。

提前致谢!

【问题讨论】:

  • 我不确定编解码器库,但我知道一些 apache 公共库依赖于其他库/jar 中的类。当它给出 ClassNotFoundException 时,它是否说 DigestUtils 或其他一些类。如果是其他类,则可能意味着您将需要 DigestUtils 所依赖的另一个 jar 中的另一个类。
  • 具体说是digestutils。

标签: maven tomcat dependencies java


【解决方案1】:

您需要此库(commons-codec)在您的 WEB-INF/lib 文件夹中,而不是在您的构建路径中。

【讨论】:

  • 如果我添加 maven 依赖项(在 pom 文件中)会不会发生这种情况?
  • 不,maven引用基本上类似于在构建路径中有jar
  • 那么我如何将 ot 添加到这个文件夹中呢?
  • 只是简单的复制粘贴
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-07
  • 2017-07-15
  • 2012-07-31
  • 1970-01-01
相关资源
最近更新 更多