我指的是返回的Maven的二進制版本時,你通常從返回類似下面的輸出命令行中運行如何從自定義Mojo中獲取Maven二進制版本?
mvn --version
,
Apache Maven 3.0.4
Maven home: /usr/share/maven
Java version: 1.6.0_45, vendor: Sun Microsystems Inc.
Java home: /home/uvindra/Apps/java6/jdk1.6.0_45/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.11.0-15-generic", arch: "amd64", family: "unix"
注意Maven的3.0版。 4。在Java中的自定義Maven Mojo中訪問它的最佳方式是什麼?有沒有可用於此的財產?
我想要運行正在執行我的魔抗電流Maven版本驗證,謝謝
首先你爲什麼要知道?你的MOJO只使用特定的Maven版本嗎?使用maven-enforcer插件?你有沒有在你的pom中設置先決條件(但要小心Maven 3.X已經棄用了)。 – khmarbaise
我正在爲外部用戶提供一個工具,使用[mojo-executor](https://github.com/TimMoore/mojo-executor)插件通過我的mojo執行其他的Maven插件。給定的插件可能只與某些Maven版本兼容。當他們定義用戶將在集中式系統中執行的插件時,管理員可以指定給定插件兼容的Maven版本。然後,當用戶在本地機器上執行這些插件時,我可以通過驗證其本地安裝的Maven版本來跳過不兼容的插件。 – UDJ
你爲什麼要這麼做?您的方法與pom文件相比有哪些優勢?您正在嘗試創建一個運行Maven的插件?爲什麼不使用Maven本身。你遇到了什麼問題?除此之外,如果插件與Maven版本不兼容,則必須使用不同的插件版本,否則您的構建將無法工作。這必須在描述構建的pom文件中定義。出於這種目的,公司pom中的pluginManagement部分是正確的方式,強制用戶使用maven-enforcer-plugin。 – khmarbaise