1

我正在使用 Eclipse 开发一个 Java maven 项目,并希望导出一个包含所有引用库的 jar。这些引用的库属于以下两类之一:

  1. 它们是显式(或隐式) 依赖关系pom.xml

  2. 我有一些库不能作为 maven 工件使用,并将它们放在 /lib 中(并将它们添加到 Eclipse 的构建路径中)

maven-assembly-plugin,它适用于 1)。但是,我无法找到还包含非 Maven 依赖项的 Maven 插件,例如"all jars in /lib".

然后是 EclipseFatJar插件,它可以工作,但自 2009 年以来一直没有更新,所以它似乎没有维护。此外,我更喜欢可以直接在pom.xml.

谁能指点我一个maven插件或类似的东西来导出所有引用的库,包括案例 2) 中的那些?这只需要涉及将它们放入 jar 并在清单的类路径中引用它们。

谢谢!

4

2 回答 2

4

我认为处理此问题的最佳方法是将您的自定义库包含到本地 Maven 存储库中。现在您可以将您的库包含为 maven 依赖项,并且您可以使用 maven-assembly-plugin 导出您在 pom 中指定的所有依赖项。

这是一个教程,如何将您的库放入 maven 中的本地存储库以在您的 pom.xml 中使用它。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>
于 2012-12-17T08:56:15.550 回答
0

这看起来像是第谷的任务。它是一组 maven 插件,允许使用 maven 创建 eclipse 插件。Tycho 将清单条目视为构建依赖项。

但是我不知道如何将所有这些依赖项打包在一个 jar 中。这也可能与 osgi 规范相冲突。但是如果你想忽略 osgi,你可以试试 jar-with-dependencies 程序集。

于 2012-12-17T08:35:20.237 回答