java - Eclipse 中的 Jar 依赖项 - 2 个外部 jar 中的同一类

标签 java eclipse jar dependencies

我有一个 jar 依赖问题,不知道如何解决。

类 HttpClientBuilder 位于我引用的库中的两个外部 jar 中。但在一次 Eclipse 选择中,缺少一种方法。我想是因为这个 jars 里面有它所有的依赖库,而这个 httpclient 已经过时了。

是否可以以某种方式告诉 Eclipse 应该为 HttpClientBuilder 类选择哪个外部 jar?

Exception in thread "Thread-0" java.lang.NoSuchMethodError: org.apache.http.impl.client.HttpClientBuilder.setSSLHostnameVerifier(Ljavax/net/ssl/HostnameVerifier;)Lorg/apache/http/impl/client/HttpClientBuilder;
    at org.telegram.telegrambots.bots.DefaultAbsSender.<init>(DefaultAbsSender.java:63)
    at org.telegram.telegrambots.bots.TelegramLongPollingBot.<init>(TelegramLongPollingBot.java:35)
    at org.telegram.telegrambots.bots.TelegramLongPollingBot.<init>(TelegramLongPollingBot.java:31)
    at minerbot.CommandHandler.<init>(CommandHandler.java:9)
    at minerbot.Main$CommandThread.run(Main.java:97)
    at java.lang.Thread.run(Unknown Source)

谢谢!!

最佳答案

如果您的项目没有使用 maven、ant 等软件项目管理和理解工具,那么您应该使用它,因为它可以通过排除项目不需要的依赖项来帮助管理依赖项。

基本上,您可以排除项目不需要的依赖项 jar,这样就不会获得不必要的传递依赖项。

如果您只想从某些 jar 中排除类,那么这里是一个选项。

Exclude classes from a dependency in Maven

这里是排除不必要的依赖jar的示例(maven官网)...

https://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html

<project>
  ...
  <dependencies>
    <dependency>
      <groupId>sample.ProjectA</groupId>
      <artifactId>Project-A</artifactId>
      <version>1.0</version>
      <scope>compile</scope>
      <exclusions>
        <exclusion>  <!-- declare the exclusion here -->
          <groupId>sample.ProjectB</groupId>
          <artifactId>Project-B</artifactId>
        </exclusion>
      </exclusions> 
    </dependency>
  </dependencies>
</project>

Maven Eclipse 插件安装:

确认 Eclipse 设置:

  • 打开窗口 - 偏好设置
  • 检查左侧面板中是否列出了 Maven,并检查安装中的设置
  • 单击现有项目并右键单击选择“配置”->“转换为 Maven 项目”

关于java - Eclipse 中的 Jar 依赖项 - 2 个外部 jar 中的同一类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46482185/

相关文章:

java - 查找jar中的所有依赖项

java - 搜索 HTTPS Session 中的 SessionID、SessionKey

java - 如何隐藏或关闭弹出菜单 JDateChooser?

java - 从 Windows 批处理文件中自行删除 jar

Java GUI 不显示在 Ubuntu 上的 Eclipse 中

eclipse - 在Eclipse中使用Subversion填充@version标签

java - 如何启动需要提升权限的 .jar?

java - 使用 JOOQ,如何将 SQLException 映射到业务异常?

java - 如何修复 firebase 注册身份验证?

java - 在 Debug View 中,程序终止后,切换回 Eclipse 中的 Java View