我有一个使用http common-logging.jar,httpclient-4.4-alpha1.jar,httpcore-4.4-alpha1.jar,httpmime-4.4-alpha1.jar的Java项目。我将我的Java项目转换为Maven项目,并将上面的jar文件添加到我的pom.xml中。这是我的XML文件:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>MyClient</groupId>
<artifactId>MyClient</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.4</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.4</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20090211</version>
</dependency>
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>
</build>
</project>
我做了Run As&gt; Maven Clean and Run As&gt; Maven Install并构建了该项目。它在名为MyClient-0.0.1-SNAPSHOT.jar的目标文件夹中生成了一个jar文件。我将这个jar添加到另一个使用这个jar文件的项目(进行HTTP调用),我得到了错误
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/http/entity/mime/content/ContentBody
有人能告诉我是什么原因引起的吗?这似乎是一个依赖问题?有人能告诉我我做错了吗?
答案 0 :(得分:1)
Maven不会自动将这些依赖项打包到您的jar文件中。这些文件仅用于编译代码并构建jar文件本身。作为jar plugin州的文档:
由此产生的&#39; jar&#39; file包含已编译的java类文件以及src / main / resources中的文件。
您有多种选择: