我正在尝试使用pom.xml
执行可执行jar,但不包括couchbase外部存储库。
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
包含在jar中,但是com.couchbase.client
...不是
提前致谢。
答案 0 :(得分:0)
尝试从couchbase-client依赖项中删除“提供”范围。这表示assembly-plugin不包含此依赖项,因为它将在运行时提供
答案 1 :(得分:0)
您将couchbase-client的范围定义为“已提供”,这意味着:您在编译时需要它但不需要部署它,因为无论代码运行在哪里,必要的类都已经存在(例如Java EE)在Java EE应用程序服务器中运行Java EE应用程序时的API类。
所以问题是:“提供”范围是否正确?