2012-04-26 14 views
2

具体而言,我试图构建一个Datomic(http://www.datomic.com)jar与依赖关系,以便我可以在Jython REPL中对它进行试验。如何在使用mvn程序集时包含本地jar:单独构建一个jar-with-dependencies?

Datomic不是分布在Maven的,但你可以下载并安装Datomic到你的本地Maven回购这样的:

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

但我需要它作为其依赖单一的jar,所以我可以把它放在我的classpath并从Jython REPL中使用它。

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

在做mvn assembly:single时,您如何包含本地罐子?

回答

0

如果你的jar文件添加到您的pom.xml(依赖部分)罐安装在本地,只要没关系:

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

退房的Maven Assembly插件解决的文jar-with-dependency

使用jar -with-dependencies作为assembly-plugin配置的descriptorRef,以便创建一个包含项目的二进制输出的JAR,以及解压后的依赖项。该内置描述符使用JAR归档格式生成带分类器jar-with-dependencies的程序集。

请注意,jar-with-dependencies只提供对超级罐子的基本支持。要获得更多控制权,请使用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> 
相关问题