Java EE:NoClassDefFoundError org.joda.time.DateTime与IntelliJ和Maven

Java EE:NoClassDefFoundError org.joda.time.DateTime与IntelliJ和Maven,java,maven,intellij-idea,jodatime,Java,Maven,Intellij Idea,Jodatime,我正在使用Intellij14 我想在我的项目中添加joda.time lib。 当我手动添加这个库(将jar文件复制到库存储库中,并在项目结构中添加引用)时,一切都很好,我可以在servlet中使用该库,并在jsp中显示结果 但在第二步中,我创建了相同的项目,但我使用了maven和pom.xml文件。我添加此依赖项: <dependencies> <dependency> <groupId>joda-time</groupId&

我正在使用Intellij14

我想在我的项目中添加joda.time lib。 当我手动添加这个库(将jar文件复制到库存储库中,并在项目结构中添加引用)时,一切都很好,我可以在servlet中使用该库,并在jsp中显示结果

但在第二步中,我创建了相同的项目,但我使用了maven和pom.xml文件。我添加此依赖项:

<dependencies>
    <dependency>
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
        <version>2.1</version>
    </dependency>
</dependencies>
项目完全相同,我只是使用Maven来使用lib

你有什么想法吗

例如,我的Servlet第47行:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    DateTime dt = new DateTime();
    Integer jourDuMois = dt.getDayOfMonth();
}

问题更可能是在部署项目时没有包括joda time jar。您可以解压缩war文件,看看它是否在那里。我使用Eclipse,它安装Maven插件。因此,当我导出Maven项目时,所有Maven管理的jar都将包含在war中。

问题更可能是,在部署项目时,joda time jar没有包含在内。您可以解压缩war文件,看看它是否在那里。我使用Eclipse,它安装Maven插件。因此,当我导出Maven项目时,所有Maven管理的jar都将包含在war中。

如果
打包类型
被显式设置为
war
,您应该检查
pom.xml
。如果没有,maven将不会使用maven war插件将您的应用程序与所有引用的库正确绑定,例如,
joda time

因此,你应该:

<packaging>war</packaging>
战争
另见参考:

如果
包装类型
明确设置为
war
,则应检查
pom.xml
。如果没有,maven将不会使用maven war插件将您的应用程序与所有引用的库正确绑定,例如,
joda time

因此,你应该:

<packaging>war</packaging>
战争
另见参考:
谢谢MWiesner,你的回答。它起作用了

我找到了另一个解决方案:

  • 在IntelliJ/项目结构(F4键)/工件中
  • 在右边(可用元素)有joda时间库,我必须双击它来传输工件中的库

我不知道在maven导入lib时IntelliJ是否可以自动执行该操作

谢谢MWiesner,你的回答。它起作用了

我找到了另一个解决方案:

  • 在IntelliJ/项目结构(F4键)/工件中
  • 在右边(可用元素)有joda时间库,我必须双击它来传输工件中的库

我不知道在maven导入lib时IntelliJ是否可以自动执行该操作