web-dev-qa-db-ja.com

Eclipseプラグイン開発にIntelliJ IDEAを使用する方法?

Eclipse用のプラグインを開発する必要がありますが、IntelliJ IDEA IDEとして好みます。Eclipseプラグイン開発用にIDEAを構成することは可能ですか?

44
Taras Hupalo

Eclipse Tycho を使用することで可能になるはずです。

あなたはmavenを使用し、それはIntellIjで完全に動作します。

Tychoは、Eclipseプラグイン、機能、更新サイト、RCPアプリケーション、OSGiバンドルを構築するためのMaven中心のマニフェストファーストアプローチに焦点を当てています。 Tychoは、MavenでEclipseプラグインとOSGiバンドルをビルドするためのMavenプラグインと拡張機能のセットです。

25
maba

Osmorc を使用することは可能かもしれませんが、私はそれを試していません。ただし、私は機能する方法を持っています(IntelliJ 2017.1を使用していますが、他のバージョンでも同様です)。私のプラグインがTychoと互換性がないように見えるXCoreを使用したため、私は使用できなかったEclipse Tychoを必要としません。

  • Eclipseでプロジェクトを作成します。
  • IntelliJプロジェクトを作成します。
  • IntelliJの内部

    1. ファイル>新規>既存のソースからのモジュール。 Eclipseプロジェクトを選択します。
    2. 外部モデルからモジュールをインポート

      enter image description here

    3. Eclipseプロジェクトを台無しにしないために、「プロジェクトファイルとモジュールファイルを~/IdeaProjects/MyIntelliJProject

    4. Eclipseプロジェクトごとに繰り返します
  • プロジェクト構造を開きます(CtrlAltShiftS

  • 「グローバルライブラリ」(またはライブラリのみ)に、新しいJavaライブラリを追加します。
  • /opt/Eclipse/pluginsディレクトリ(またはEclipseがインストールされている場所)を選択します
  • 各モジュールがこのEclipseライブラリを最後の依存関係として持っていることを確認してください。

この時点で、IntelliJでコードを記述してテストを実行できるはずですが、実際にプラグインを実行するには、Eclipseを使用する必要があります。しかし、それは少し厄介です。

私の解決策は、プラグインを実行したときにEclipseが実行するのと同じコマンドを実行することでした。

  • BashSupport IntelliJプラグインを取得します(Windowsでは他の何かである必要があるかもしれません。おそらくバッチファイルを実行できます)。
  • Eclipseで、プラグインを実行します(Eclipseアプリケーションを実行)。
  • デバッグパースペクティブを開きます。次のようなものが表示されます。

    Debug stack

  • 右クリック> /usr/lib/jvm/...のプロパティ(異なる場合がありますJava JVM)

  • コマンドラインをコピーします。

    Process Properties

  • 他の場所で、お気に入りのエディターで新しいbashファイルを作成し(このファイルをIntelliJプロジェクトフォルダーに配置します)、このコマンドをそこに貼り付けます。

  • Eclipseがコマンドを実行する場合、/opt/Eclipse/(またはEclipseがインストールされている場所)の作業ディレクトリから実行されるため、事前にcd /opt/Eclipse/を追加する必要があることに注意してください。新しいシェルでも同じようにしましょう:

    (cd /opt/Eclipse && /usr/lib/jvm/Java-8-Oracle/bin/Java ...)
    

    このbashスクリプトを実行すると、Eclipseから実行した場合と同じになります。

  • IntelliJで、新しいBash実行構成(AltShiftF10 >実行構成の編集)。 「スクリプト:」フィールドに、先ほど作成したbashファイルへのパスを含めます。

    また、「Before launch」オプションに「Build Project」を追加します。

    さらに、[単一インスタンスのみ]チェックボックスをオンにします。

ここでその構成を実行すると、機能するはずです。ただし、IntelliJ内からはデバッグできません。これはそれを修正します:

  • タイプ「リモート」の新しいIntelliJ実行構成を作成し、「単一インスタンスのみ」としてマークを付けます
  • 「リモートJVMを実行するためのコマンドライン引数」をコピーします。私にとっては

    -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
    

    suspend=yのワークフローが気に入りました。基本的には、デバッガーを接続するまでEclipseアプリケーションが起動しないことを意味します。

  • Bashファイルをコピーして、次の引数を追加します。

    (cd /opt/Eclipse && /usr/lib/jvm/Java-8-Oracle/bin/Java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 ...)
    
  • この新しいスクリプトを実行するIntelliJの別のBash実行構成を追加します(事前に「プロジェクトのビルド」も実行します。これは「単一インスタンスのみ」です)。

次に、Eclipseプラグインをデバッグするには、Debug Bash構成を実行してから、リモート構成を実行します。

最後に、私の実行構成は次のようになります。

enter image description here

この時点で、Eclipseが必要なのは.xcoreファイルを編集することだけです。EclipseはJavaからコードを生成し、XCoreはそこから実行する方法がないためです。ターミナル。

11
Justin