[英]API to download dependencies from pom.xml
我正在嘗試編寫一個將maven pom.xml文件作為輸入並執行以下操作的Java程序:
可能嗎? 任何實現以上#1的示例代碼將不勝感激
您的要求正是Maven Exec插件已經具備的功能。
如果絕對必須這樣做,請嵌入Java應用程序中:
Maven在后台進行依賴項解析的庫稱為Aether。 如果您查看Sonatype站點上的文檔 ,則有一個有關如何執行步驟1的示例。部分依賴項解析過程將使您能夠訪問一系列依賴項,然后可以遍歷這些依賴項以構建類路徑。
對於步驟3,您可以使用ProcessBuilder並啟動目標Java應用程序作為JVM的子進程,該JVM使用Aether來構建類路徑。
如果可以使用Shell腳本:
您可以使用mvn dependency:get -Dartifact=[group]:[artifact]:[version]
將工件下載到本地存儲庫。
然后,您可以使用mvn dependency:build-classpath
生成類路徑字符串。
然后,您可以簡單地使用-cp選項執行java。 您還必須知道所需的主類,或者您可以根據工件和版本號計算主jar的名稱,並將其傳遞給-jar。
如果您能夠在部署環境中獲取主項目的pom.xml:
您可以只使用mvn exec:java -DmainClass=com.company.package.YourMainClass
。 這個選項到目前為止是最簡單的,但是它確實具有在Maven JVM中執行的缺點,而且據我所知,沒有辦法分叉一個單獨的進程。 另外,您還需要完整的pom才能完成這項工作,但這並不總是很方便。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.