2013-03-26 66 views
2

我看官方的文檔mvn help:describe -DgroupId=org.apache.maven.plugins -DartifactId=maven-compiler-plugin -Ddetail當我刪除/重命名相應的.java文件時,是否可以告訴maven-compiler-plugin刪除.class文件?

,並沒有發現其中暗示的.class文件自動刪除了不再住.java文件選項。

我也沒有爲螞蟻找到這樣的選擇:

很煩人清理項目,然後重命名類後,再次建立或將其移動到另一個包...

如果我不這樣做IoC框架檢測重複匹配的bean綁定。

UPDTE我不可能使用maven-compiler-plugin有沒有任何插件可以檢測到單獨的.class文件並刪除它們?

我想要得到一致的版本每次我運行mvn package並保留構建的增量性質(所以請避免mvn clean)。

+0

我不知道有任何這樣的選擇,我也不確定這將是可取的。 – 2013-03-26 11:41:00

+0

這種選擇的主要論點是**一致/非破壞構建** – gavenkoa 2013-03-26 11:44:37

+0

對,我明白了這個願望。但是類文件可能來自其他來源,而不是主要編譯任務,所以您需要明確跟蹤源代碼樹。看起來這將是一個相當平凡的插件;也許這將是我下午的項目。 – 2013-03-26 12:06:53

回答

2

據我所知,沒有其他的解決辦法比做maven乾淨。否則,.class文件將不會被刪除。 如果您使用的是Eclipse或STS,那麼您可以配置您的tomcat以在每次資源更改後自動發佈項目。

這可能會幫助你。

+2

是的,好點的資源!重命名/刪除後,它們也必須刪除! +1 – gavenkoa 2013-03-26 11:50:33

+0

我使用另一種資源技術(我更喜歡** Emacs **來** Eclipse **來獲取'.js' /'.jsp' /'.tag'文件):http://stackoverflow.com/questions/15477790/i-want-to-use-development-version-of-jsp-files-in-spring-project-is-it-possible – gavenkoa 2013-03-26 11:52:43

3

如果您遵循Maven慣例並且您的代碼在src/main/javasrc/test/java之下,那麼您將分別編譯爲target/classestarget/test-classes。這就是說,maven-clean-plugin將刪除您的target目錄中的所有內容。

考慮以下幾點:

mvn clean package 

這將刪除所有的編譯類和重建它們。很明顯,當你進行涉及到移動/重命名類的重構時,你需要做一個乾淨的編譯,以確保你沒有任何遺漏。

編譯器插件並不是要處理編譯以外的其他任何事情。 Maven的插件被嚴格分成獨立的功能單元。

+0

隨着'mvn clean'的鬆散增量構建...巨大的時間成本。 +1 – gavenkoa 2013-03-26 14:29:51

+0

您必須認真理解,Maven本身無法知道在重構過程中您在IDE中更改了哪些代碼。它不會在你背後匍匐,只是爲了看看你的肩膀,並檢查你是否做了它不指望你的事情。它只是希望你遵守它的做事方式。 :) – carlspring 2013-03-26 15:02:49

+1

我有非常簡單的項目,沒有源文件預處理。所以期待從中受益! – gavenkoa 2013-03-26 16:24:12