2011-12-03 138 views
1

我正在使用Maven 2.2.1。我有一个企业java maven项目,我正在尝试构建。当我运行mvn clean install时,会生成EAR。没有发现编译错误。在日志中,我收到了1980年源文件被编译到ApplicationWeb \ target \ classes目录的消息。但是我在这个位置找不到这些类文件,并且它们不存在于WAR中。如何解决这个问题?Maven构建成功但未找到.class文件

编辑:从Eclipse使用Maven插件构建时,它的工作正常。从Windows命令提示符运行时会出现问题。为什么区别?

+0

也许这些类是在不同的位置生成的?您可以在文件系统中搜索这些类。 – Raghuram

+0

路径正确。我检查了日志。 – Prabhat

+1

您的意思是尽管控制台指示编译了1980年的源文件,但在命令行mvn运行之后,您没有在文件系统中的任何位置找到这些类?那么也许他们会被随后的目标删除。尝试mvn编译来验证。 – Raghuram

回答

1

这种事情通常发生在使用不同版本的Maven时。我打赌你的Eclipse使用的是内置版本的3.x。

你有两个选择:

  1. 使Eclipse使用相同的版本为你的命令行
  2. 安装Maven的新版本。 (3.0.3是最新的)

我建议将Maven升级到最新版本,并让您的命令行和Eclipse都使用相同的安装版本。

+0

是的。看起来像Eclipse使用的版本3.我以前从未在Maven 2.2.1中体验过这一点。 Maven 2.2.1有什么方法可以解决这个问题吗? – Prabhat

+0

不确定,maven插件版本和兼容性上的intracies使这很难。如果可能的话,我会使用版本3. –

+0

更威胁的部分是,在某些系统中它可以工作,而其他一些系统则不会。 – Prabhat

0

作为第一次尝试解决这个问题 - 尝试去你的战争模块(你应该有一个负责WAR生成的模块)并查看文件是否在那里。 耳模组仅仅是一个“信封” - 它只是把战争放在耳朵里。 所以我相信如果问题真的存在于WAR模块的pom文件中,而不是EAR的文件中。 检查您生成的战争的大小,并检查战争插件配置。

总的来说这种情况不应该发生。

希望这会有所帮助。

+0

是的。我在谈论同一个战争。大小必须是26MB,但是是24MB。另外,观察一些事情。修改了初始问题。 – Prabhat