Maven clean
目标是否应该应用于每个构建作为避免陈旧CLASS文件的最佳做法?或者总是使用clean
是不必要的,因为Maven足够聪明,知道哪些源代码需要根据更改重新编译?
Gareth Davis指出在重新命名CLASS文件后忘记运行clean
的潜在危险 - https://stackoverflow.com/a/4662536/409976。
示例:
main
我正在研究缺少clean
是否会改善共享目录中来宾VM上的构建性能。但是,我并不知道不的所有后果总是先调用clean
步骤。
答案 0 :(得分:7)
在任何构建之前运行clean
始终是一个好习惯,因为您提到的陈旧类场景是完全可能的,如果遇到,它可能会在您的最终构件中产生问题。
我正在研究缺少干净是否会改善来宾虚拟机的构建性能。
通过表现,我最好的猜测是你的意思是时间效率。通过避免干净的目标,您可以节省时间,因为maven将只构建完成任何更改的类,并且它将忽略未触及的类的其余部分。所以,从技术上讲,是的,你将在构建过程中节省一些时间。
但是,我并不知道所有后果并不总是先打电话给干净的步骤。
课堂陈旧是迄今为止您可能会遇到的最常见问题。
根据经验,我可以分享一些事情。如果您正在使用IDE并且您的项目结构有点复杂(一些依赖模块等等),那么运行mvn clean
有时会混淆IDE来管理项目的构建路径,您可能会遇到{ {1}}秒。虽然不是一个大问题,但你必须做一个项目 - > maven - >更新项目以将构建路径设置为正确。
(编辑但是,如果您通过命令lien运行它,那么这个问题永远不会出现)
在您的开发计算机上,ClassNotFoundException
一切都很好,但是当您在生产或测试服务器上部署构建时,最好在执行mvn install
之前使用mvn clean
确保没有问题出现,并且所有类在将它们包装在jar / war或任何其他内容之前构建一次