具体来说,我正在尝试构建一个具有依赖关系的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
时如何包含本地jar?
答案 0 :(得分:1)
我认为使用Maven Shade插件会更好: http://maven.apache.org/plugins/maven-shade-plugin/
这将允许您创建一个über-jar ,它将包含您自己的类以及依赖项。
答案 1 :(得分:0)
只要将jar文件添加到项目的pom.xml文件(依赖项部分)中,jar是否在本地安装并不重要:
<dependencies>
... ...
<dependency>
<groupId>com.datomic</groupId>
<artifactId>datomic</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
查看Maven Assembly Plugin docum jar-with-dependency:
使用jar-with-dependencies作为程序集 - 插件配置的descriptorRef,以便创建一个JAR,其中包含项目的二进制输出及其解压缩的依赖项。这个内置描述符使用JAR归档格式生成带有分类器jar-with-dependencies的程序集。
请注意,jar-with-dependencies仅提供对uber-jar的基本支持。要获得更多控制权,请使用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>