Maven 插件如何知道何时重新运行?

How does a Maven plugin know when to re-run?

clean 不是执行的一部分时,Maven 插件如何知道何时重新 运行?

也就是说,当我 mvn install 而不是 mvn clean install 时,它如何知道哪些文件已更改以及哪些插件已更改 should/shouldn 而不是 运行?

我问是因为我似乎有一个麻烦的插件,似乎缺少一些更改,我不想每次都 "recompile the world" 而且我也不想在什么时候积极思考做clean与否。

经过一些调查,我发现没有通用的方法可以做到这一点。一般的想法是比较源和目标的时间戳,但有些插件 "smart" 不足以知道源是什么。

我 运行 遇到的具体问题是 cxf-codegen-plugin 没有考虑到 .wsdl 文件可能依赖于 .xsd 文件。因此,如果 .xsd 文件被修改,这意味着如果它再次 运行 编译的代码将会改变,但它不会 运行 插件。