缺少 CouchDB4j/mvn 依赖项
CouchDB4j/ mvn dependencies are missing
我无法以编程方式设置与本地 CouchDB 的连接。
我正在使用 couchDb4j- 一切看起来都不错,直到我 运行 并尝试连接到数据库。
我的控制台抛出以下错误:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/http/params/HttpParams
[...]
Caused by: java.lang.ClassNotFoundException: org.apache.http.params.HttpParams
因为我的小应用程序没有找到 class,我检查了我的依赖项——一切都应该没问题。我有:
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.0-beta3</version>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
</dependency>
其中应包含所有必要的 http 特定 .jar(尤其是第一个应包含 httpParams 二进制文件;来源:http://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore/4.0-beta3)。
为了防止在我的系统上缓存错误的二进制文件,我运行宁以下:
mvn clean && mvn package
我也删除了我的 .m2 文件夹。
谷歌搜索给了我提示,我的 class 路径可能是错误的,导致在 运行 时间内缺少依赖项。但是我已经在我的 pom 中设置了我的 class 路径;看这里:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>Packagename.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
希望有人能给我一个想法,这样我就可以解决这个问题:)
此致。
像这样在插件声明中添加这些依赖项:
<plugin>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<dependencies>
...
</dependencies>
</plugin>
插件有自己的类路径
找到解决方案。
问题是在执行过程中缺少依赖项。
为了确保在运行时绑定所有必需的文件,我必须包含以下插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
如果我做对了,它会在 "uber" jar 上绑定所有依赖项...
资料来源:https://maven.apache.org/plugins/maven-shade-plugin/
我无法以编程方式设置与本地 CouchDB 的连接。
我正在使用 couchDb4j- 一切看起来都不错,直到我 运行 并尝试连接到数据库。
我的控制台抛出以下错误:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/http/params/HttpParams
[...]
Caused by: java.lang.ClassNotFoundException: org.apache.http.params.HttpParams
因为我的小应用程序没有找到 class,我检查了我的依赖项——一切都应该没问题。我有:
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.0-beta3</version>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
</dependency>
其中应包含所有必要的 http 特定 .jar(尤其是第一个应包含 httpParams 二进制文件;来源:http://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore/4.0-beta3)。
为了防止在我的系统上缓存错误的二进制文件,我运行宁以下:
mvn clean && mvn package
我也删除了我的 .m2 文件夹。
谷歌搜索给了我提示,我的 class 路径可能是错误的,导致在 运行 时间内缺少依赖项。但是我已经在我的 pom 中设置了我的 class 路径;看这里:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>Packagename.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
希望有人能给我一个想法,这样我就可以解决这个问题:)
此致。
像这样在插件声明中添加这些依赖项:
<plugin>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<dependencies>
...
</dependencies>
</plugin>
插件有自己的类路径
找到解决方案。
问题是在执行过程中缺少依赖项。
为了确保在运行时绑定所有必需的文件,我必须包含以下插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
如果我做对了,它会在 "uber" jar 上绑定所有依赖项... 资料来源:https://maven.apache.org/plugins/maven-shade-plugin/