[英]Running a Maven project with many dependencies
我正在研究一個基於Maven的項目, 該項目具有很多依賴關系。 該項目通常是要在Eclipse中開發的,但我需要從命令行進行處理。
如何以理智的方式構建和執行項目? 類似於mvn run
,但是Maven當然不是用於運行Java項目的(出於某種原因)。
問題是在java的命令行上指定了所有依賴項,我什至不知道如何自動生成它。 我目前可以使用assembly:single maven插件(使用jar-with-dependencies描述符)來處理它,它將為我將依賴項打包到單個.jar中。
但是,確實存在很多依賴關系,並且組裝階段可能需要兩分鍾左右的時間,這極大地破壞了我的hack-test周期,因此我正在尋找其他方法以最小的構建開銷來運行項目-請提出任何建議?
注意:一種可能是在Eclipse中運行一次並捕獲Java命令行。 但是,這只是一次性的技巧,不是通用的解決方案,以防我稍后更改pom.xml
或從套件中轉到另一個項目而不再使用Eclipse的情況。
看到這個問題: 如何使用Maven創建具有依賴關系的可執行JAR? 。 您可以在包階段之前使用dependency-plugin在單獨的目錄中生成所有依賴項,然后將其包含在清單的類路徑中。
關於查找項目依賴項-您可以使用Maven依賴項插件
http://maven.apache.org/plugins/maven-dependency-plugin/list-mojo.html
如果你想把它們歸檔,就像
mvn dependency:list > dependencies.txt
我看到了三種解決方案:
onejar-maven- plugin-使用jar-with-dependencies描述符比assemlby更快
使用onejar-maven-plugin,您將獲得一個不錯的干凈的超級jar,其中包含依賴項jar。
Spring Boot Maven插件 -但這專用於Spring項目
具有自定義描述符的Maven程序集插件 。 此自定義描述符應將所有依賴項都捕獲到lib
文件夾中,maven-jar-plugin應根據此新位置在Manifest.fm中設置Class-Path
。 之后,您可以簡單地執行您的程序或使用lib文件夾壓縮jar。
之后,可以使用一個命令在計算機或任何其他計算機上運行程序:
java -jar myjar.jar
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.