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

Maven插件如何知道何时重新运行?,maven,maven-plugin,Maven,Maven Plugin,当clean不是执行的一部分时,Maven插件如何知道何时重新运行 也就是说,当我执行mvn安装而不是mvn清洁安装时,它如何知道哪些文件已经更改,哪些插件应该/不应该运行 我问这个问题是因为我有一个麻烦的插件,它似乎缺少了一些更改,我不想每次都“重新编译世界”,我也不想积极思考什么时候做清理。经过一些调查后,我发现没有通用的方法可以做到这一点。一般的想法是比较源和目标的时间戳,但有些插件不够“聪明”,无法知道源是什么 我遇到的具体问题是cxf codegen插件没有考虑到.wsdl文件可能依赖

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

也就是说,当我执行
mvn安装
而不是
mvn清洁安装
时,它如何知道哪些文件已经更改,哪些插件应该/不应该运行


我问这个问题是因为我有一个麻烦的插件,它似乎缺少了一些更改,我不想每次都“重新编译世界”,我也不想积极思考什么时候做
清理

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


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

请参见。@Kenny我理解构建生命周期,我想说的是,有时候我的jar在执行
mvn安装后不会有更改,但如果执行
mvn clean安装
则会有更改。所以我问插件如何决定是否需要重新运行。这应该在那里解释:所有生命周期阶段,包括您指定的命令都在运行。每个插件自行确定文件是否已更改(即.java的文件时间戳>.class的时间戳)。您可能将麻烦的插件绑定到了错误的生命周期阶段。您能否添加POM的相关部分(例如,
),它是哪个插件,哪些文件没有更新?@Kenney它处于正确的阶段,它是cxf codegen插件。问题是当wsdl使用xsd时,它没有检测到它。我已经下载了它的源代码,通过查看,我的最佳猜测是它没有意识到wsdl依赖于xsd文件。