0

pom.xml으로 실행 가능 병을 작성하려고하지만 couchbase 외부 리포지토리가 포함되어 있지 않습니다.jar-with-dependencies에는 외부 리포지토리가 포함되지 않습니다.

Eclipse에서 모든 것이 정상적으로 실행됩니다.

<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-client 종속성에서 "제공된"범위를 제거하십시오. 이 종속성을 포함하지 않는 어셈블리 플러그인에 대한 표시입니다. 어쨌든 런타임에 제공됩니다.

+0

감사합니다. 이 코드를 복사했습니다. 죄송합니다 :( –

0

couchbase-client의 범위를 "제공된"것으로 정의 했으므로 컴파일 타임에 필요하지만 ' 코드를 실행하는 곳마다 필요한 클래스가 이미 있으므로 (예 : Java EE 애플리케이션 서버에서 Java EE 애플리케이션을 실행할 때 Java EE API 클래스)이를 배치해야합니다.

그래서 질문은 : "제공된"범위가 맞습니까?