我有一个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项目