7

Ant と Eclipse については多くの議論がありますが、以前の回答は役に立たないようです。

これが取り引きです: コマンドラインから Ant で正常にコンパイルされる Java プログラムを構築しようとしています。(さらに混乱させるために、私がコンパイルしようとしているプログラムは Ant そのものです。)

私が本当にやりたいことは、このプロジェクトを Eclipse に取り込み、型バインディングと変数バインディング (Eclipse JDT の命名法) が正しく解決されるように Eclipse でコンパイルすることです。これが必要なのは、Eclipse JDT の上に構築されたコードに対して静的分析を実行する必要があるためです。Java プロジェクトを Eclipse に取り込み、Eclipse がプロジェクトをビルドしてすべてのバインディングを解決できるようにする通常の方法は、ソース ディレクトリを Java プロジェクトにインポートしてから、src/main/ ディレクトリを「ソース ディレクトリ」として使用するように指示することです。 ."

残念ながら、Ant でこれを行うと、多数のコンパイル エラーでビルドが失敗します。Ant ビルド ファイルがクラス パスとビルド パスを正しく設定しているように思えますが (おそらく特定のソース ファイルを除外することによって)、Eclipse にはこの情報がありません。

Antビルドファイルに埋め込まれたクラスパスとビルドパス情報を取得し、その情報をEclipseに渡して.projectおよび.classpathファイルに入れる方法はありますか? 既存のビルド ファイル ([ファイル] メニューのオプション) から新しいプロジェクトを作成しようとしましたが、これは役に立ちません。プロジェクトにはまだ同じコンパイル エラーがあります。

ありがとう、ネルス

4

5 に答える 5

6

私はツタを使ってANTクラスパスを管理しています。それがどのように機能するかを学ぶことを強くお勧めします。

ANTが依存関係を定義するために使用するのと同じivy.xmlファイルからeclipseクラスパスを管理するeclipseプラグインがあります。

于 2010-03-16T21:38:48.333 に答える
6

それを行うための本当にきれいな方法を見つけたことはありませんが、それを行うための「ハックな」方法の1つは、Eclipseが使用する.classpathファイルを操作することです(これにはビルドパスが含まれています)。

したがって、.classpath には次のようなものが含まれます。

<classpathentry kind="lib" path="C:/jboss-4.2.3.GA/client/jboss-system-client.jar"/>

したがって、たとえば、ant ファイルの依存関係を読み取り、それらを eclipse .classpath ファイルに (もちろん適切な形式で) 配置する、ある種のバッチ スクリプトなどを作成できます。

しかし、個人的には、私はそのようなことでだまされることはありません。私がしていることは、プロジェクトに必要なすべての jar を 1 つのフォルダーに入れるだけで、ant ファイルに次のようにパスを設定するだけです。

<path id="all_libs">
    <fileset dir="test_reflib">
        <include name="**/*.jar"/>
    </fileset>
</path>

test_reflib は、すべての jar を含むこのフォルダーのどこにでも定義する必要があります。

次に、Eclipse側で「Add jars」を実行して、この同じフォルダーに移動し、すべてのjarを選択するだけです。さらにすばらしいのは、新しい jar をこのフォルダーにドロップするときはいつでも、Eclipse プロジェクトのルート レベルをクリックして「更新」を実行し、ビルド パスを編集して [jar を追加] をもう一度クリックすると、jar のみが表示されることです。まだビルド パスに追加していないもの (つまり、フォルダーにドロップしたばかりの新しい jar)。

中央の場所で jar を共有している場合、これは明らかにうまく機能しませんが、すべての jar をプロジェクトの中央のフォルダーにコピーするだけでよい小規模なプロジェクトではうまく機能します。

于 2010-03-08T19:56:48.300 に答える
1

生の ant ディストリビューションから、最初に "ant -f fetch.xml" (または同様のもの) を実行して、多くの必要な依存関係をダウンロードします。これらを Eclipse プロジェクトに追加して、役立つかどうかを確認してください。

于 2010-03-08T19:59:59.130 に答える
1

Ant から Eclipse の .classpath および .project ファイルを生成して、中央に配置された jar (100 以上) を持つ大規模なプロジェクトを作成しました (src jar と javadoc はカウントされません)。hereからリンクされている build.xml と同様に、src および javadoc 属性が明らかに追加されています。

于 2010-03-16T03:07:01.507 に答える