首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maven项目不能与其他项目协同工作

Maven项目不能与其他项目协同工作
EN

Stack Overflow用户
提问于 2015-02-13 08:06:51
回答 1查看 550关注 0票数 0

我有一个Java项目,它使用http common-logging.jar、httpclient-4.4-alpha1.jar、httpcore-4.4-alpha1.jar、httpmime-4.4-alpha1.jar。我将我的Java项目转换为Maven项目,并将上述jar文件添加到我的pom.xml中。这是我的XML文件:

代码语言:javascript
复制
<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>

我确实运行了As > Maven Clean and Run As > Maven Install,它构建了这个项目。它在目标文件夹中生成了一个名为MyClient-0.0.1-SNAPSHOT.jar的jar文件。我将此jar添加到使用此jar文件的另一个项目中(以进行HTTP调用),并收到错误消息

代码语言:javascript
复制
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/http/entity/mime/content/ContentBody

谁能告诉我这是什么原因?这看起来像是一个依赖问题?谁能告诉我我哪里做错了?

EN

回答 1

Stack Overflow用户

发布于 2015-02-13 08:52:22

Maven不会自动将这些依赖项打包到jar文件中。这些文件仅用于编译代码和构建jar文件本身。正如jar plugin的文档所述:

生成的'jar‘文件包含已编译的java类文件以及来自src/main/resources的文件。

您有许多选项:

在使用jar文件的项目中,

  1. 使用类似于maven shade plugin
  2. Add的方式将MyClient jar文件打包为"fat“jar文件。MyClient
  3. 使用具有公共父项的maven多模块项目,以便在复制MyClient jar文件

时解决maven之间的传递依赖关系复制所有这些jar文件

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28490279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档