簡體   English   中英

運行具有許多依賴項的Maven項目

[英]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 exec插件

mvn exec:java -Dexec.mainClass="com.example.Main"

如果您經常這樣做,則當然可以通過插件配置進行配置。

看到這個問題: 如何使用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.

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