簡體   English   中英

Maven:將第三方jar的導出jar添加到manifest中的classpath

[英]Maven: Export jar with 3rd-party jars added to classpath in manifest

我正在使用Eclipse開發Java maven項目,並希望導出包含所有引用庫的jar 這些引用的庫屬於以下兩個類別之一:

  1. 它們是pom.xml中的顯式(或隱式) 依賴項

  2. 我有一些庫不能用作maven工件並將它們放在/ lib中(並將它們添加到Eclipse中的構建路徑中)

maven-assembly-plugin ,適用於1)。 但是,我無法找到包含非maven依賴項的maven插件,例如"all jars in /lib"

然后是Eclipse FatJar插件,這種插件有效,但自2009年以來一直沒有更新,因此它似乎沒有維護。 另外我更喜歡我可以在pom.xml直接指定的導出方法。

任何人都可以指向我的maven插件或類似的東西,以導出所有引用的庫 ,包括案例2)? 這只需要將它們放在jar中並在manifest的類路徑中引用它們。

謝謝!

我認為處理此問題的最佳方法是將自定義庫包含到本地maven存儲庫中。 現在,您可以將庫作為maven依賴項包含在內,並且可以使用maven-assembly-plugin導出pom中指定的所有依賴項。

這是一個教程,如何將您的lib放入maven中的本地存儲庫,以便在您的pom中使用它。 http://www.mkyong.com/maven/how-to-include-library-manully-into-maven-local-repository/

在你的pom.xml中:

<!-- setup jar manifest to executable with dependencies -->
<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <configuration>
    <descriptorRefs>
      <descriptorRef>jar-with-dependencies</descriptorRef>
    </descriptorRefs>
    <archive>
      <manifest>
        <mainClass>your.main.class</mainClass>
      </manifest>
    </archive>
  </configuration>
  <executions>
    <execution>
      <phase>package</phase>
      <goals>
       <goal>single</goal>
      </goals>  
    </execution>
  </executions>
</plugin>

這看起來像是第谷的任務。 它是一組maven插件,允許使用maven創建eclipse插件。 Tycho將清單條目視為構建依賴項。

但是我不知道如何在一個jar中打包所有這些依賴項。 這也可能與osgi規范相沖突。 但是如果你想忽略osgi,你可以嘗試使用jar-with-dependencies程序集。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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