我读了官方文档mvn help:describe -DgroupId=org.apache.maven.plugins -DartifactId=maven-compiler-plugin -Ddetail
:
- http://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html
,没有找到自动删除不再存在的.java
文件的.class
文件选项。
我也没有找到Ant的这样的选项:
- http://ant.apache.org/manual/Tasks/javac.html
清理项目,然后在类重命名或将其移动到另一个包后再次构建是很烦人的…
如果我不这样做,IoC框架将检测bean绑定的重复匹配。
UPDTE如果使用maven-compiler-plugin是不可能的,是否有任何插件可以单独检测.class
文件并删除它们?
我想得到一致的构建每次我运行mvn package
和保持构建的增量性质(所以避免mvn clean
)。
如果您遵循Maven约定,并且您的代码在src/main/java
和src/test/java
下,那么您将分别将其编译为target/classes
和target/test-classes
。话虽如此,maven-clean-plugin
将从target
目录中删除所有内容。
考虑以下内容:
mvn clean package
这将删除所有已编译的类并重新构建它们。
显然,当你进行重构时,涉及到你移动/重命名类,你需要做一个干净的编译,以确保你没有任何遗留。
编译器插件不是用来处理编译之外的任何事情的。Maven的插件被严格划分为自包含的功能单元。
在我看来,除了maven-clean没有其他解决方案。否则,.class文件将不会被删除。如果您正在使用Eclipse或STS,那么您可以配置tomcat,在每次资源更改后自动发布项目。
那可能对你有帮助。