Java 在maven中使用执行时出现NoClassDefFoundError

Java 在maven中使用执行时出现NoClassDefFoundError,java,maven,maven-3,noclassdeffounderror,Java,Maven,Maven 3,Noclassdeffounderror,更新 根据其他人的评论和我自己的测试,这似乎只是Maven 3.1.1的一个问题-我已经 我已经创建了最小的maven POM文件来突出这个问题(见下文) 我正在使用一个电子邮件服务器插件(用于集成测试)。我可以启动插件,没问题: mvn emailserver:run [INFO] --- emailserver-maven-plugin:1.1.1:run (default-cli) @ project --- [INFO] Starting Greenmail mail server..

更新

根据其他人的评论和我自己的测试,这似乎只是Maven 3.1.1的一个问题-我已经


我已经创建了最小的maven POM文件来突出这个问题(见下文)

我正在使用一个电子邮件服务器插件(用于集成测试)。我可以启动插件,没问题:

mvn emailserver:run
[INFO] --- emailserver-maven-plugin:1.1.1:run (default-cli) @ project ---
[INFO] Starting Greenmail mail server...
[INFO] Started Greenmail mail server
[INFO] Waiting for command from client
但是,我已经将插件配置为在
集成测试
生命周期之前运行。以这种方式运行时,我得到一个
NoClassDefFoundError

mvn integration-test
Exception in thread "Thread-1" java.lang.NoClassDefFoundError: com/icegreen/greenmail/util/ServerSetup
当我使用
-X
执行maven以查看发生了什么时,在这两种情况下,它都显示了我所能看到的相同的依赖关系树,因此我有点不明白为什么会出现异常,它是在生命周期的各个阶段启动的。希望有人能帮忙


4.0.0
com.mytest
项目
罐子
1
测试项目
com.btmatthews.maven.plugins
emailserver maven插件
电子邮件服务器
10025
绿色邮件
13000
假的
寄信
跑
预集成测试
真的
停止邮件
停止
整合后测试
Maven信息:

> mvn -v
Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 16:22:22+0100)
Maven home: /opt/apache-maven
Java version: 1.7.0_45, vendor: Oracle Corporation
Java home: /opt/jdk1.7.0_45/jre
Default locale: en_IE, platform encoding: UTF-8
OS name: "linux", version: "3.11.0-13-generic", arch: "amd64", family: "unix"

NoClassDefFoundError表示类在编译时存在于类路径中,但在运行时不存在于类路径中


因此,通过eclipse清理项目,.class文件将重新生成。在maven的帮助下再次运行maven项目

我已经按原样安装了maven,没有错误。。。运行
mvn集成测试
也很有效,服务器没有明显停止。@Vic
mvn-v
给了你什么?mvn 3.0.4和Java 1.6.38,实际上。。。使用Java 1.7.25运行的工作原理如下well@Vic嗯,我下载了3.0.5,它对我也很有效-所以这一定是maven 3.1.1的问题…我是该插件的开发人员,可以确认它对以太没有直接依赖性。我刚刚用Maven 3.1.1和Java 8成功地测试了您的POM。你能确认你使用的插件的版本吗?该插件的早期版本在启动时存在竞争条件。但这应该在1.1.1版中修复。