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 が含まれていますが、これはインターフェイスであるため、このエラーが発生しています。ivy が java インターフェイスを含む ivy ライブラリの sources.jar にリンクしていることを確認しましたが、.classファイルを含むソースのコンパイル済みバージョンであるプロジェクトに httpclient.jar を含める必要があります。これが可能な方法はありますか?

4

2 に答える 2

1

まず、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ビルド内でクラスパスを正しく設定していないことだと思います。入手可能な情報に基づいてさらに診断することは不可能です。

私が提案するのは、次の回答で実際の例を使用することです。

Ivy ファイルの構成と次のような Ivy タスクを使用する方法を確認することをお勧めします。

  • cachepath - ivy の構成に基づいて、ANT パスを作成するために使用されます
  • レポート- アイビーがその依存関係を解決する方法を文書化するために使用されます。ivy ファイル内の構成ごとに作成されたレポート
  • retrieve - 解決されたファイルをローカルにインストールするために使用されます。ディストリビューションを構築するときに便利
  • manifestclasspath - あまり知られていない ANT タスクですが、アイビー リトリーブと組み合わせると非常に強力です。
于 2013-07-03T17:39:59.190 に答える
0

上記のエラーは、ivy ライブラリが Java クラスパスに追加されていないために発生します。この問題は、ivyBeans Web サイトで報告されています。問題の詳細はこちらです。 ここで述べたように、ネットビーンズで「保存時にコンパイル」オプションをオフにすることで、私もこの問題を解決しました。この解決策は他の人に役立つかもしれないと思ったので投稿しました。

于 2013-07-12T06:43:34.093 に答える