在2个外部罐子中的同一类中的jar依赖性



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

类HTTPClientBuilder类位于我的引用库中的两个外部罐子中。但是在一个日食的选择中,缺少一种方法。我认为,因为此罐子里面有所有依赖性库,并且此httpclient已过时。

是否可以以某种方式告诉Eclipse HTTPClientBuilder类应该选择哪个外部罐子?

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等项目。

基本上,您可以排除项目不需要的依赖项罐子,以免获得不必要的传递依赖项。

如果您只想从某些罐子中排除类,那么这是一个选择。

从Maven的依赖项中排除类

这是排除不必要的依赖罐(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插件安装:

  • 开放日食IDE&amp;点击帮助 - 安装新软件
  • 单击"添加"按钮,然后在弹出式上填写名称为" m2eclipse",位置为" http://download.eclopse.org/technology/m2e/releases"或http://download.eclipse.eclipse.org/technology/M2E/Milestones/1.0
  • 单击确定,等待安装完成

确认日食设置:

  • 打开窗口 - 首选项
  • 检查Maven是否在左图中列出并检查安装中的设置
  • 单击现有项目,然后右键单击以选择配置 ->转换为Maven项目

最新更新