簡體   English   中英

從pom.xml下載依賴項的API

[英]API to download dependencies from pom.xml

我正在嘗試編寫一個將maven pom.xml文件作為輸入並執行以下操作的Java程序:

  1. 下載所有依賴項
  2. 將jar添加到classpath
  3. 執行Java代碼(從jar中加載)

可能嗎? 任何實現以上#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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM