我的問題是,我寫了一個maven插件將工件部署到用戶指定的位置。我現在正在嘗試編寫另一個Maven插件來使用此已部署的工件,更改一些內容並再次壓縮它。 我想編寫第二個插件,這樣我可以使用第一個插件來獲取它的部署位置信息。 我不知道如何從第一個插件訪問這些信息。Maven插件;使用一個輸出作爲另一個輸入
2
A
回答
0
我同意@Barend,如果你有能力在部署之前做出改變,那可能是最好的策略。
如果你不能這樣做,你可以按照像Maven Release插件這樣的插件策略。 Maven發佈插件分兩個階段運行,第二個運行需要輸出第一個運行。他們通過保持臨時性質攜帶像標籤名稱的信息項目目錄中的文件進行管理,快照版本命名等
你可以使用與插件相同的方法。只要記住,你的插件將是一種事務性的,它希望在其能夠完成它的工作之前運行其他目標。
0
在我看來,最簡單的解決方法是顛倒插件運行的順序。
讓插件B先運行,使用target/
下的已知位置修改工件,然後運行插件A,將修改的工件部署到配置的位置。
如果這沒有選擇,我建議你只需複製配置值(以便兩個插件被告知有關<configuration>
元素中的新位置)。這使得兩個插件都是獨立的,Maven認爲它們是獨立的。
最後一個選項是讓插件B解析整個POM並從插件A的<configuration>
元素中提取信息,但我真的不能推薦這個。如果你這樣做,這兩個插件是如此緊密地交織在一起,以至於它們只是一個插件。這是糟糕的設計,違反了最小驚喜的原則,並可能導致惡劣的配置問題。
相關問題
- 1. Cassandra:使用一個查詢的輸出作爲另一個查詢的輸入
- 2. 使用一個功能的輸出作爲另一個功能的輸入
- 3. 插入文件從另一個輸入輸入
- 4. sqlite3的獲得從一個表輸出作爲輸入提供給另一個
- 5. 使用最後的sapply輸出作爲下一個輸入
- 6. 如何使一個子進程使用另一個終端輸入和輸出?
- 7. 將一個函數的輸出用作另一個函數的輸入
- 8. 使用線程進行其中一個輸入和顯示另一個輸出
- 9. 將一個場景的輸出作爲輸入輸入到另一個黃瓜場景中
- 10. 不知道如何輸入一個函數的輸出作爲另一個函數的輸入
- 11. 查詢輸出,是另一個查詢的輸入 - 不工作
- 12. Oracle SELECT - 另一列的別名作爲另一個輸入的
- 13. 如何將一個腳本的輸出文件作爲另一個腳本的輸入文件?
- 14. 錯誤在使用一個的MapReduce的輸出作爲另一個的MapReduce的輸入
- 15. 如何使用Tensorflow r-1.0將一個模型的輸出作爲另一個模型的輸入?
- 16. BIRT可以使用一個查詢的輸出作爲另一個查詢的輸入
- 17. Maven插件執行另一個插件
- 18. 如何將Maven工件用作另一個工件(或模塊)的輸入?
- 19. 使用...函數參數作爲另一個函數的輸入
- 20. 使用函數作爲另一個函數的輸入
- 21. 如何從另一個c文件輸入輸出?
- 22. MySQL輸出一個低於另一個
- 23. 插入輸出到一個臨時表
- 24. 輸出是另一個
- 25. 使用另一個表的行作爲輸入創建一個表
- 26. 從另一個輸入
- 27. 從一個輸入動態生成值到另一個輸入
- 28. 傳入一個對象作爲一個輸出參數
- 29. 使用管道將文件輸入輸出到另一個進程
- 30. 你可以做一個maven插件拉到另一個插件?
在哪種類型的插件是特別與maven-deploy-plugin等比較的。那麼爲此編寫一個maven-plugin的原因是什麼?爲什麼你重新發明輪子,導致像maven-assembly-plugin這樣的插件已經存在?.. – khmarbaise 2012-04-22 11:52:09