包括常春藤依赖项中的jar文件

时间:2013-07-03 00:37:48

标签: java netbeans ant jar ivy

我正在使用netbeans 7.1.1和常春藤。 我有ivy.xml文件,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0">
    <info module="Laitsv3second" organisation="Laitsv3second" revision="1.0"/>
<dependency org="org.apache.httpcomponents" name="httpclient" rev="latest.integration">
</dependency>
</ivy-module>

现在问题如下: 我的项目也使用log4j库。当我运行项目时,我收到如下错误:

java.lang.NoClassDefFoundError: org/apache/http/client/methods/HttpUriRequest

下载的httpclient库包含此类org.apache.http.client.methods.HttpUriRequest.java但这是一个接口,因此出现此错误。我观察到ivy链接了包含java接口的常春藤库中的sources.jar,但我想要的是httpclient.jar包含在项目中,该项目是包含.class文件的源代码的编译版本。这有可能吗?

2 个答案:

答案 0 :(得分:1)

首先你的常春藤文件无效。你错过了封闭的&#34;依赖关系&#34;标记:

<ivy-module version="2.0">
    <info module="Laitsv3second" organisation="Laitsv3second" revision="1.0"/>
    <dependencies>
        <dependency org="org.apache.httpcomponents" name="httpclient" rev="latest.integration"/>
    </dependencies>
</ivy-module>

我怀疑你真正的问题是你没有在你的ANT版本中正确设置你的类路径。无法根据可用信息进一步诊断。

我建议使用以下答案中的工作示例:

我建议查看它如何在常春藤文件和常春藤任务中使用配置,如:

  • cachepath - 用于根据常春藤
  • 中的配置创建ANT路径
  • report - 用于记录常春藤如何解析其依赖关系。为常春藤文件中的每个配置创建的报告
  • retrieve - 用于在本地安装已解析的文件。在构建分发时很有用
  • manifestclasspath - 鲜为人知的ANT任务,与常春藤检索相结合时功能非常强大。

答案 1 :(得分:0)

上面提到的错误是因为ivy库没有添加到java类路径中。此问题在ivyBeans网站上报告。 Here are the details of the issue. 如前所述,我也通过在netbeans中关闭'compile on save'选项解决了这个问题。我认为这个解决方案可能会帮助其他人发布。

相关问题