包括ivy依赖项中的jar文件



我正在一起使用netbeans 7.1.1和ivy。我有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链接了ivy库中的sources.jar,该库包含java接口,但我希望httpclient.jar包含在项目中,该项目是包含.class文件的源代码的编译版本。这有可能吗?

首先,您的ivy文件无效。您缺少封闭的"依赖项"标签:

<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构建中正确设置类路径。无法根据现有信息进行进一步诊断。

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

  • 在build.xml中找不到包含Ant、Ivy和JUnit的类-错误

我建议查看它如何使用ivy文件中的配置以及ivy任务,如:

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

上面提到的错误是因为ivy库没有添加到java类路径中。这个问题在ivyBeans网站上有报道。以下是问题的详细信息。如上所述,我也通过关闭netbeans中的"保存时编译"选项来解决这个问题。我认为这个解决方案可能会帮助其他人,因此发布。

相关内容

  • 没有找到相关文章