0

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

4

2 回答 2

1

首先你的常春藤文件是无效的。您缺少封闭的“依赖项”标签:

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

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

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

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

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

于 2013-07-12T06:43:34.093 回答