web-dev-qa-db-ja.com

EclipseのBuildshipを使用してプロジェクトの依存関係を更新するにはどうすればよいですか?

Eclipse Marsが最近リリースされたので、試してみたい気がしました。 Buildship を介して、Gradleとのより緊密な統合をその機能の1つとしてリストしました。

Lunaでは、 Gradle Integration for Eclipse(4.4) を使用していましたが、これをやろうとしていた方がずっと簡単に作業できることがわかりました。 Buildshipで行ったように、プロジェクトを削除して再インポートする必要なく、Gradleの「自然」を既存のプロジェクトに追加できます。また、_build.gradle_で宣言したすべての依存関係をプロジェクトのクラスパス内に自動的に配置します。

Buildshipでは、既存のプロジェクトをGradleプロジェクトとして構成するオプションが表示されず、プロジェクトのクラスパス内のビルドスクリプトで指定した依存関係を含める方法を見つけることができませんでした。

Eclipse Marsの元のプラグイン(GIfE 4.4)をインストールしようとしましたが、Eclipseを再起動すると、自動的にすべての処理が再び行われました。私が疑問に思っているのは、ビルドシップだけでこれをすべて実行する方法があるかどうかです。なぜなら、現在はすべて動作しますが、かなり面白いセットアップだからです。私のプロジェクトのドロップダウンメニューは次のようになります。

少し変わっているように見えますが、実際にはかなり素敵なセットアップです。GIfEの自動依存関係管理と、Buildshipが提供するEclipseからGradleタスクを直接実行する機能を組み合わせているからです。

30
Tagc

Eclipseが認識する依存関係の更新は、次のように簡単になります。

right click on project -> gradle -> refresh all

ビルドシップ1.0.16での更新

現在、buildshipで既存のgradleプロジェクトを初めて使用するときは、削除とインポートのフープをジャンプする必要があります。 [Gradle Natureの追加]オプションを使用できるようになりました。

 right click on project -> configure -> Add Gradle Nature

「Gradleプロジェクトの更新」は、Gradleエディタのコンテキストメニューだけでなく、.gradleファイルを右クリックしたときにも表示されるようになりました。 ソース

以下の更新を参照してください ただし、プロジェクトをインポートしたときに、新しいプロジェクトおよび外部依存関係のクラスパスが取得されない場合があります。 通常Project Properties -> Java Build Path -> Librariesに表示されるエントリが存在しない場合、プロジェクトの.classpathファイルに以下を追加すると、すべてのgradleの機能が動作し始めます。

<classpathentry exported="true" kind="con" path="org.Eclipse.buildship.core.gradleclasspathcontainer"/>

ビルドシップ1.0.16での更新

Gradleクラスパスコンテナが見つからない場合は復元されます

既存のEclipse JavaプロジェクトをGradleに変換すると、Gradleクラスパスコンテナが欠落していました。プロジェクトがJavaプロジェクトの場合、常に追加されます。

54
Paul Adamson

誰のためにでも、あなたが取得していない場合

プロジェクトを右クリック-> gradle

@PaulAdamsonの回答に記載されている手順を実行した後のリンク。これを試して。

  1. Build.gradleにapply plugin 'Eclipse';を追加します
  2. Eclispeでプロジェクトを閉じます。
  3. コマンドラインからgradleビルドを実行し、Eclipseでプロジェクトを再度開きます。

    これで、グラドルリンクが右クリックで利用可能になります。

4
Chandru

ビルドシップはちょっとした災害だと思います。ドキュメントは限られた例と最小限のユーザーガイドで非常にまばらです。 Gradle Integration for Eclipse(4.4)からの移行を文書化するのは簡単だと思うでしょうが、そうではないと思います。また、いくつかのタスクを手動で実行し、.classpathファイルに完全修飾パスを入れたこと以外に、Buildshipの使用方法についての手がかりもありません。多くのプロジェクトが変更管理システムを通じて共有されていることを考えると、それはばかげています。

4
robross0606

現在、Buildshipには「Congrad to Gradleプロジェクト」が実装されていません。ただし、プロジェクトを削除し、Gradleインポートウィザードを使用して再インポートすると、適切な性質とクラスパスコンテナを備えた同じプロジェクトが表示されます。

さらに、ワークスペースにGradleプロジェクトがあり、ビルドスクリプトの依存関係を更新する場合、プロジェクトを右クリックしてGradle > Refresh projectsを選択することにより、クラスパスコンテナーを更新できます。

あなたが直面している同様の問題は、Gradleフォーラムで議論されました:Discussion.gradle.org/t/adding-dependencies-to-projects/10415。

この機能リクエスト専用のバグもあります:bugs.Eclipse.org/bugs/show_bug.cgi?id=465355。それに投票し、そこにあなたの考えを共有してください。

ドキュメントについて:中央Eclipseヘルプシステムの公式ドキュメントを提供していないのは事実ですが、現在の機能を説明するリソースがいくつかあります。

2
Donát Csikós

既にJavaプロジェクトをGradleプロジェクトに変換しているが、[右クリック] +インポート(その後 'Existing Gradle Project'をインポート))している場合、プロジェクトはGradle Natureである必要があります。

プロジェクトがGradle Natureの場合、.classpathファイルには、通常のJavaプロジェクトにあるように、すべての.jar依存関係が表示されません。代わりに、次のエントリが1つ表示されます。

<classpathentry kind="con" path="org.Eclipse.buildship.core.gradleclasspathcontainer"/>

依存関係を更新するには、次を実行する必要があります。

[右クリック] + Gradle + Gradleプロジェクトの更新

これにより、すべての合併症の問題が修正されます。

0
user204069