我正在一起使用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,但这是一个接口,因此会出现此错误。我观察到,常春藤在包含Java接口的常春藤库中链接sources.jar,但我想要的是将httpclient.jar包含在项目中,该项目是包含.class文件的源的编译版本。有什么办法可行吗?

最佳答案

首先,您的常春藤文件无效。您缺少随附的“ dependencies”标签:

<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构建中未正确设置类路径。不可能根据可用信息进一步诊断。

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


Class not found with Ant, Ivy and JUnit - error in build.xml?


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


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

07-24 09:46
查看更多