为什么Maven在安装期间会忽略更新的类?

bra*_*ter 3 caching install maven-2

在进行战争安装时,我一直看到Maven 2.2.1安装的奇怪行为.

有时,我会更新一个类,但更新的版本没有打包在mvn install生成的工件中.

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

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

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

我认为在缓存文件(?)之前我还遇到了同样的问题,这是Eclipse编译不完整,导致Maven构建中出现"未解决的编译问题"错误,而是来自Eclipse导出的工作工件.

  • Maven如何在安装过程中确定文件是否为"最新"?
  • Maven比较的文件在哪里?
  • 我可以强制Maven从头开始构建一个包吗?
  • 任何其他想法将不胜感激!

mdm*_*dma 8

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

可以肯定的是,这些课程应该建立在target\classes,而不是target.

  • 我可以强制Maven从头开始构建一个包吗?

您可以通过运行强制完整构建

mvn clean install
Run Code Online (Sandbox Code Playgroud)

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

另外 - 检查Maven构建目录之外的类的副本.在这种情况下,因为它是一个webapp,检查src/main/webapp/WEB-INF/classes