2

具体来说,我正在尝试构建一个具有依赖项的 Datomic (http://www.datomic.com) jar,以便我可以在 Jython REPL 中对其进行试验。

Datomic 不在 Maven 上分发,但您可以像这样下载并安装 Datomic 到本地 Maven 存储库中:

mvn install:install-file 
  -DgroupId=com.datomic 
  -DartifactId=datomic 
  -Dfile=datomic.jar 
  -DpomFile=pom.xml

但是我需要将它作为具有依赖关系的单个 jar,以便我可以将它放在我的类路径中并从 Jython REPL 中使用它。

mvn assembly:single构建一个具有依赖关系的 jar,但它不包含 Datomic jar,大概是因为它是一个本地文件。

你如何在做的时候包括一个本地罐子mvn assembly:single

4

2 回答 2

1

我认为使用 Maven Shade 插件会更好: http ://maven.apache.org/plugins/maven-shade-plugin/

这将允许您创建一个über-jar,其中将包含您自己的类和依赖项。

于 2012-04-26T10:01:14.987 回答
0

jar 是否安装在本地并不重要,只要将 jar 文件添加到项目的 pom.xml 文件(依赖项部分)即可:

<dependencies>
  ... ...
  <dependency>
    <groupId>com.datomic</groupId>
    <artifactId>datomic</artifactId>
    <version>1.0</version>
  </dependency>
</dependencies>

查看 Maven Assembly Plugin 文档jar-with-dependency

使用 jar-with-dependencies 作为您的程序集插件配置的 descriptorRef,以创建一个 JAR,其中包含项目的二进制输出以及解压缩的依赖项。此内置描述符使用 JAR 归档格式生成带有分类器 jar-with-dependencies 的程序集。

请注意,jar-with-dependencies 仅提供对 uber-jars 的基本支持。如需更多控制,请使用Maven Shade Plugin

示例 pom.xml:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-assembly-plugin</artifactId>
  <version>2.3</version>
  <configuration>
    <descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs>
  </configuration>
  <executions>
    <execution>
      <phase>package</phase>
      <goals><goal>single</goal></goals>
    </execution>
  </executions>
</plugin>
于 2012-04-26T10:54:38.153 回答