0
當clean
不是執行的一部分時,Maven插件如何知道何時重新運行?Maven插件如何知道何時重新運行?
也就是說,當我做mvn install
而不是mvn clean install
時,它如何知道哪些文件已經更改以及它應該/不應該運行哪些插件?
我問,因爲我似乎有一個麻煩的插件,似乎缺少一些變化,我不想每次都「重新編譯這個世界」,我也不想積極地想什麼時候或者不是clean
。
當clean
不是執行的一部分時,Maven插件如何知道何時重新運行?Maven插件如何知道何時重新運行?
也就是說,當我做mvn install
而不是mvn clean install
時,它如何知道哪些文件已經更改以及它應該/不應該運行哪些插件?
我問,因爲我似乎有一個麻煩的插件,似乎缺少一些變化,我不想每次都「重新編譯這個世界」,我也不想積極地想什麼時候或者不是clean
。
經過一番調查後,我發現沒有通用的方法。總體思路是比較源和時間戳的時間戳,但是一些插件不夠「聰明」,不足以知道源是什麼。
我遇到的具體問題是cxf-codegen-plugin沒有考慮到.wsdl
文件可能取決於.xsd
文件。因此,如果.xsd
文件被修改,這意味着如果編譯後的代碼再次運行,它將發生變化,但它並未運行該插件。
請參閱[Maven Build生命週期](https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html)。 – Kenney
@Kenny我瞭解構建生命週期,我說的是有時我的'jar安裝'後,我的jar不會有我的變化,但如果我'mvn乾淨安裝'它會。所以我問一個插件如何確定它是否需要重新運行。 –
應該在那裏解釋:運行所有生命週期階段直到包括您指定的命令爲止。每個插件都會自行確定文件是否已更改(即文件時間戳.java> .class的時間戳)。你可能會將這個麻煩的插件綁定到錯誤的生命週期階段。你可以添加你的POM的相關部分(例如''),它是哪個插件,哪些文件沒有更新? –
Kenney