2015-04-29 84 views
0

我有一個Jenkins作業,它將首先從SVN存儲庫更新代碼,然後我需要在我的Maven插件中處理來自SVN的更新文件。如何在Maven MOJO中讀取Jenkins控制檯SVN輸出

那麼,我怎樣才能從詹金斯更新文件列表到我的MOJO(擴展org.apache.maven.plugin.AbstractMojo)類?

我認爲這樣做的一種方法是閱讀Jenkins控制檯,在其中打印SVN日誌並解析該控制檯輸出並獲取更新的文件列表。但我認爲會有更好的方式來做到這一點。

謝謝。

+0

你能詳細說明你究竟想要做什麼嗎?我們在談論增量構建嗎? – khmarbaise

+0

@khmarbaise我在詹金斯有一個夜間建立工作。這項工作是首先運行SVN更新,然後運行我自定義的maven插件作業。在我的maven插件(MOJO)中,我需要從SVN獲取更新文件的列表。 –

+0

我知道你有自己的MOJO,但是MOJO的目的是什麼?另一方面,你可以看看[SCM組件](http://maven.apache.org/scm/)? – khmarbaise

回答

0

因此,您需要記錄文件的狀態,之後您需要檢查哪些文件已更改。這裏的問題是:你會被稱爲第3版,下一次你將被第7版調用,但是更新(拾取更改的/新文件)已經由(例如)詹金斯完成,現在你需要知道哪些文件已被更改/添加?這隻能通過使用存儲在目標文件夾中的一些補充信息來完成(例如文件的指紋),這已經像maven-compiler-plugin那樣進行了檢查。閱讀SVN帶給你回到相同的問題?你第一次被稱爲哪個州?

您需要存儲關於上次更新的信息...因此將修訂號存儲在某處?下一次你會被稱爲比較它與存儲,你可以做出決定該怎麼辦...

更好的是做這樣的事情在一個文件庫,所以你是獨立的SCM系統......但它不會改變,需要確定哪些莫名其妙文件已被更改......

可能一看http://maven.apache.org/shared/maven-shared-incremental/可能是值得的......

此外,你需要實現什麼樣的影響analyzis的,檢查的事情就像你改變類A(讓它用Java說),但是類B被類B使用,所以你需要編譯類B而不是總是......有特殊情況需要考慮...... 影響o怎麼樣? f其他信息如配置(例如pom文件更改)?

相關問題