0

我试图做一个可执行的JAR与我pom.xml,但不包括couchbase外部存储库。JAR-与依赖性不包括外部存储库

一切都在Eclipse中运行正常。我已经通过在POM中的couchbase客户端:

<repositories> 
    <repository> 
     <id>couchbase</id> 
     <name>Couchbase Maven Repository</name> 
     <layout>default</layout> 
     <url>http://files.couchbase.com/maven2/</url> 
     <snapshots> 
      <enabled>false</enabled> 
     </snapshots> 
    </repository> 
</repositories> 

... 

<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-core</artifactId> 
    <version>2.1.3</version> 
</dependency> 
<dependency> 
    <groupId>couchbase</groupId> 
    <artifactId>couchbase-client</artifactId> 
    <version>1.1.7</version> 
    <scope>provided</scope> 
</dependency> 

和插件:

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <configuration> 
     <archive> 
     <manifest> 
      <mainClass>fully.qualified.MainClass</mainClass> 
     </manifest> 
     </archive> 
     <descriptorRefs> 
     <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
    </configuration> 
    <executions> 
     <execution> 
     <id>make-assembly</id> <!-- this is used for inheritance merges --> 
     <phase>package</phase> <!-- bind to the packaging phase --> 
     <goals> 
      <goal>single</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 

com.fasterxml.jackson.core包括在罐子,但com.couchbase.client ...不是

在此先感谢。

回答

0

尝试删除范围从couchbase-客户依赖“设置”。这表明assembly-plugin不包含这种依赖性,因为它将在运行时被提供

+0

谢谢!我复制了这段代码。对不起:( –

0

您将couchbase-client的范围定义为“provided”,这意味着:您在编译时需要它,吨需要部署它,因为无论代码运行,(当您运行在Java EE应用服务器的Java EE应用程序如Java EE的API类)需要的类已经存在。

所以问题是:范围“规定”是否正确?