Maven 2 为什么Maven会在安装过程中忽略更新的类?

Maven 2 为什么Maven会在安装过程中忽略更新的类?,maven-2,caching,installation,Maven 2,Caching,Installation,在进行war安装时,我在Maven 2.2.1安装中看到了一些奇怪的行为 偶尔,我会更新一个类,但更新后的版本没有打包在mvn安装生成的工件中 到目前为止,我已经确定在目标目录中生成了一个更新的.class文件,并且生成的.war中同名的类不同(修改的日期不同,大小不同) 使用-X标志从命令行运行Maven会为类生成调试输出,如: [调试]* WEB-INF/classes/mypackage/MyClass.class 是最新的 我想我以前也遇到过同样的问题,缓存的文件(?)是来自Eclips

在进行war安装时,我在Maven 2.2.1安装中看到了一些奇怪的行为

偶尔,我会更新一个类,但更新后的版本没有打包在mvn安装生成的工件中

到目前为止,我已经确定在目标目录中生成了一个更新的.class文件,并且生成的.war中同名的类不同(修改的日期不同,大小不同)

使用-X标志从命令行运行Maven会为类生成调试输出,如:

[调试]* WEB-INF/classes/mypackage/MyClass.class 是最新的

我想我以前也遇到过同样的问题,缓存的文件(?)是来自Eclipse的不完整编译,导致Maven构建中出现“未解决的编译问题”错误,但是Eclipse导出中的工作工件

  • Maven如何确定 文件“是最新的” 安装过程
  • Maven比较的文件在哪里
  • 我可以强制Maven从头开始构建包吗
  • 任何其他想法将不胜感激
到目前为止,我已经确定 更新的.class文件是在 目标目录,并且该类 在战争中同名的 不一样(不同的日期) 修改,不同尺寸)

当然,类应该在
target\classes
下构建,而不是在
target
下构建

  • 我可以强制Maven从头开始构建包吗
您可以通过运行

mvn clean install
这将在运行安装阶段之前执行
clean
(基本上删除
target
目录)


另外-检查Maven build目录之外的类的副本。在本例中,由于它是一个webapp,请检查
src/main/webapp/WEB-INF/classes

在安装mvn之前,我正在进行mvn清理,没有意识到您可以在一个命令中同时执行这两个操作。谢谢你的提示,但我只是快速尝试了一下,并没有解决问题。是的,这些类位于target/classes中的包结构中。如果执行干净的生成并不能解决问题,那么听起来好像在生成目录之外有生成文件(这会有帮助!)或者这些类来自与您正在构建的不同的人工制品。Hmmmm“…这些类来自构建目录之外…”我会在项目中找到一个根,我在src/main/webapp/WEB-INF/classes下有一个类的旧副本。看起来Maven从那里捡到了他们,删除了那个目录,问题就消失了。完美的我将编辑您的答案,将该细节包含在正文中并接受它。谢谢@brabster在maven项目中,
src/main/webapp/WEB-INF/classes
中不应该有类,事实上,src下的任何地方都不应该有任何类!!!