gpt4 book ai didi

java - Maven 项目无法与其他项目一起使用

转载 作者:行者123 更新时间:2023-12-01 11:55:24 25 4
gpt4 key购买 nike

我有一个使用 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>

我做了“运行方式”>“Maven Clean”和“运行方式”>“Maven 安装”,它构建了项目。它在目标文件夹中生成了一个名为 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

谁能告诉我这是什么原因造成的?这好像是一个依赖问题?有人可以告诉我我做错了什么吗?

最佳答案

Maven 不会自动将这些依赖项打包到你的 jar 文件中。这些文件仅用于编译代码并构建 jar 文件本身。作为 jar plugin 的文档状态:

The resulting 'jar' file contains the compiled java class files as well as the files from src/main/resources.

您有多种选择:

  1. 使用类似 maven shade plugin 将您的 MyClient jar 文件打包为“fat”jar
  2. 将 MyClient POM 中的依赖项添加到使用 jar 文件的项目中的 POM。
  3. 使用具有公共(public)父级的 Maven 多模块项目,以便在项目之间解决诸如此类的传递依赖关系。
  4. 在复制 MyClient jar 文件时手动复制所有这些 jar 文件

关于java - Maven 项目无法与其他项目一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28490279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com