Buildship プラグインで Gradle と Eclipse を使用しています。
Buildship は、.classpath
Eclipse が使用するファイルを作成します。クラスローディングの理由から、エントリの後に1 つのクラスパス エントリ ( com.gwtplugins.gwt.eclipse.core.GWT_CONTAINER
) を表示する必要があります。org.eclipse.buildship.core.gradleclasspathcontainer
したがって、ファイルの関連部分は次の.classpath
ようになります (GWT_CONTAINER
下部に があります)。
<classpath>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
<classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer" />
<classpathentry kind="con" path="com.gwtplugins.gwt.eclipse.core.GWT_CONTAINER"/>
</classpath>
Buildship は常にgradleclasspathcontainer
最後の位置にあります。build.gradle
だから私は私の(抜粋)でこのようにソートを変更しようとしました:
eclipse {
classpath {
file {
beforeMerged { classpath ->
def gwtClasspath = classpath.entries.find { entry -> entry.path == 'com.gwtplugins.gwt.eclipse.core.GWT_CONTAINER' }
classpath.entries.remove gwtClasspath
classpath.entries << gwtClasspath
}
}
}
を使用する./gradlew eclipseClasspath
と、.classpath
ファイルが正しく作成されます。しかし、Buildship が実行されるとすぐに、ファイルは間違った順序で再び上書きされます。
whenMerged
の代わりに も使用してみましbeforeMerged
たが、何も変わりません。
Buildship で起動したときの Gradle の出力は次のとおりです (たとえば、Eclipse プロジェクトのプロパティで [Gradle] -> [更新] をクリックします)。
Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
See https://docs.gradle.org/4.5/userguide/command_line_interface.html#sec:command_line_warnings
CONFIGURE SUCCESSFUL in 0s
:cleanEclipseWtpComponent
:cleanEclipseWtpFacet
:cleanEclipseWtp
:eclipseWtpComponent
:eclipseWtpFacet
:eclipseWtp
Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
See https://docs.gradle.org/4.5/userguide/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 0s
4 actionable tasks: 4 executed
Buildship はタスクを実行することすらしていないようですが、他の方法でファイルをeclipseClasspath
作成しています。.classpath
クラスパスを自分のやり方でソートしたいという私の願いを尊重するようにBuildshipを取得するにはどうすればよいですか?