0

IntelliJ 15 では、SimpleJavaParameters クラスに setUseClasspathJar という新しいメソッドが導入されています。

ユーザーが IntelliJ 15 を実行している場合、プラグインでこのメソッドを呼び出すように設定します。ユーザーが IntelliJ 14.1 を実行している場合、メソッドは使用できません (コンパイルされません)。

このような署名の変更がある場合、バージョンに応じて異なることを行うようにプラグインを作成するにはどうすればよいですか?

4

1 に答える 1

1

IntelliJ IDEA 15 でのみコンパイルでき、if ステートメントで呼び出しを保護できます。例えば:

final BuildNumber build = ApplicationInfo.getInstance().getBuild();
if (build.getBaselineVersion() >= 143) {
    // call setUseClasspathJar() here
}

さまざまな IntelliJ プラットフォーム ベースの製品のビルド番号範囲は、こちらから入手できます。

別のオプションは、リフレクションを使用してメソッドを呼び出すことです (利用可能な場合)。これははるかに冗長ですがcom.intellij.util.ReflectionUtil、少し簡単にするために利用できます。

final Method method = 
    ReflectionUtil.getDeclaredMethod(SimpleJavaParameters.class, 
                                     "setUseClasspathJar", boolean.class);
if (method != null) {
  try {
    method.invoke(parameters, true);
  }
  catch (IllegalAccessException e1) {
    throw new RuntimeException(e1);
  }
  catch (InvocationTargetException e1) {
    throw new RuntimeException(e1);
  }
}
于 2015-12-18T10:35:35.940 に答える