The Eclipse plugin generates files that are used by the Eclipse IDE, thus making it possible to import the project into Eclipse ( - - ). Both external dependencies (including associated source and Javadoc files) and project dependencies are considered.
Eclipse プラグインは Eclipse IDE が利用するファイルを生成し、 ( - - で) Eclipse 内にプロジェクトをインポートできるようにします。 外部依存関係 (ソースと Javadoc も含む) とプロジェクト依存関係の両方が考慮されます。
Since version 1.0-milestone-4 of Gradle, the WTP-generating code was refactored into a separate plugin called eclipse-wtp
.
So if you are interested in WTP integration then only apply the eclipse-wtp
plugin. Otherwise applying the eclipse
plugin is enough.
This change was requested by Eclipse users who take advantage of the war
or ear
plugins,
but who don't use Eclipse WTP. Internally, the eclipse-wtp
plugin also applies the eclipse
plugin so you don't need to apply both of those plugins.
1.0-milestone-4 以降、WTP生成コードはリファクタリングされ、eclipse-wtp
プラグインに分離されました。
もしWTP が必要であれば、eclipse-wtp
プラグインを適用するだけです。必要でなければ、eclipse
プラグインを適用するだけでよいです。
この変更は WTP を利用せずに war
プラグインや ear
プラグインだけを利用するという Eclipse ユーザの要望によるものです。
eclipse-wtp
プラグインは 内部的に eclipse
プラグインも適用するので 両方を適用する必要はありません。
What exactly the Eclipse plugin generates depends on which other plugins are used:
Eclipse プラグインが何を生成するかは どのプラグインと一緒に利用するかで決まります。
表38.1 Eclipse プラグインの振舞いEclipse plugin behavior
プラグインPlugin | 説明Description |
なしNone | 最小構成の .project ファイルを生成します。
Generates minimal .project file. |
Java | Java の構成を .project ファイルに追加します。
.classpath ファイルと JDT 設定ファイルを生成します。
Adds Java configuration to .project .
Generates .classpath and JDT settings file. |
Groovy | Groovy の構成を.project ファイルに追加します。
Adds Groovy configuration to .project file. |
Scala | Adds Scala support to .project and .classpath files. |
War | WEBアプリケーションのサポートを.project ファイルと.classpath ファイルに追加します。
eclipse-wtp プラグインを適用している場合のみ WTP 設定ファイルを生成します。
Adds web application support to .project file.
Generates WTP settings files only if eclipse-wtp plugin was applied. |
Ear |
EAR アプリケーションのサポートを .project ファイルに追加します。
eclipse-wtp プラグインを適用している場合のみ WTP 設定ファイルを生成します。
Adds ear application support to .project file.
Generates WTP settings files only if eclipse-wtp plugin was applied. |
The Eclipse plugin is open to customization and provides a standardized set of hooks for adding and removing content from the generated files.
Eclipseプラグインは、カスタマイズが容易なように作られています。 生成されたファイルに内容を追加したり削除したりするための、標準化されたフックが用意されています。
To use the Eclipse plugin, include this in your build script:
Eclipseプラグインを使う為には、ビルドスクリプトに下記を含めます:
The Eclipse plugin adds a number of tasks to your projects. The main tasks that you will use
are the eclipse
and cleanEclipse
tasks.
Eclipseプラグインは多くのタスクをプロジェクトに追加しますが、主に利用するのは eclipse
と cleanEclipse
タスクだけです。
The Eclipse plugin adds the tasks shown below to a project.
Eclipseプラグインはプロジェクトに以下のタスクを追加します。
表38.2 Eclipse プラグイン - タスクEclipse plugin - tasks
タスク名Task name | 依存先Depends on | 型Type | 説明Description |
eclipse
|
eclipseProject , eclipseClasspath , eclipseJdt ,
eclipseWtpComponent , cleanEclipseWtpFacet |
Task |
Eclipseの全ての設定ファイルを生成します。 Generates all Eclipse configuration files |
cleanEclipse
|
cleanEclipseProject , cleanEclipseClasspath , cleanEclipseJdt ,
cleanEclipseWtpComponent , cleanEclipseWtpFacet
|
Delete |
Eclipseの全ての設定ファイルを削除します。 Removes all Eclipse configuration files |
cleanEclipseProject
|
-
|
Delete |
.project ファイルを生成します。
Generates the .project file. |
cleanEclipseClasspath
|
-
|
Delete |
.classpath ファイルを生成します。
Generates the .classpath file. |
cleanEclipseJdt
|
-
|
Delete |
.settings/org.eclipse.jdt.core.prefs ファイルを削除します。
Removes the .settings/org.eclipse.jdt.core.prefs file. |
cleanEclipseWtpComponent
|
-
|
Delete |
.settings/org.eclipse.wst.common.component ファイルを削除します。
Removes the .settings/org.eclipse.wst.common.component file. |
cleanEclipseWtpFacet
|
-
|
Delete
|
.settings/org.eclipse.wst.common.component ファイルを削除します。
Removes the .settings/org.eclipse.wst.common.component file.
|
eclipseProject
|
-
|
GenerateEclipseProject |
.project ファイルを生成します。
Generates the .project file. |
eclipseClasspath
|
-
|
GenerateEclipseClasspath |
.classpath ファイルを生成します。
Generates the .classpath file. |
eclipseJdt
|
-
|
GenerateEclipseJdt |
.settings/org.eclipse.jdt.core.prefs ファイルを生成します。
Generates the .settings/org.eclipse.jdt.core.prefs file. |
eclipseWtpComponent
|
-
|
GenerateEclipseWtpComponent |
eclipse-wtp が適用されている場合のみ .settings/org.eclipse.wst.common.component ファイルを生成します。
Generates the .settings/org.eclipse.wst.common.component file only if eclipse-wtp plugin was applied. |
eclipseWtpFacet
|
-
|
GenerateEclipseWtpFacet
|
eclipse-wtp が適用されている場合のみ .settings/org.eclipse.wst.common.project.facet.core.xml ファイルを生成します。
Generates the .settings/org.eclipse.wst.common.project.facet.core.xml file only if eclipse-wtp plugin was applied. |
表38.3 Eclipseプラグインの設定 Configuration of the Eclipse plugin
モデルModel | 参照名Reference name | 説明Description |
EclipseModel
|
eclipse |
DSLにあったやり方でEclipseプラグインの設定が可能なトップレベル要素 Top level element that enables configuration of the Eclipse plugin in a DSL-friendly fashion |
EclipseProject
|
eclipse.project |
プロジェクトの情報を設定できます。 Allows configuring project information |
EclipseClasspath
|
eclipse.classpath |
クラスパスの情報を設定できます。 Allows configuring classpath information |
EclipseJdt
|
eclipse.jdt |
JDT の情報を設定できます。(source/target java互換) Allows configuring jdt information (source/target Java compatibility) |
EclipseWtpComponent
|
eclipse.wtp.component |
eclipse-wtp プラグインを適用した場合のみ、WTPコンポーネントの情報を設定できます。
Allows configuring wtp component information only if eclipse-wtp plugin was applied. |
EclipseWtpFacet
|
eclipse.wtp.facet |
eclipse-wtp プラグインを適用した場合のみ、WTPファセットの情報を設定できます。
Allows configuring wtp facet information only if eclipse-wtp plugin was applied. |
The Eclipse plugin allows you to customize the generated metadata files. The plugin provides a DSL for configuring model objects that model the Eclipse view of the project. These model objects are then merged with the existing Eclipse XML metadata to ultimately generate new metadata. The model objects provide lower level hooks for working with domain objects representing the file content before and after merging with the model configuration. They also provide a very low level hook for working directly with the raw XML for adjustment before it is persisted, for fine tuning and configuration that the Eclipse plugin does not model.
Eclipseプラグインは、生成されるメタデータファイルをカスタマイズできるようになっています。 このプラグインでは、DSLを使ってモデルオブジェクトの設定を行うことができます。このモデルオブジェクトは、Eclipseのプロジェクトを表すものです。 DSLで設定したEclipseのモデルオブジェクトは、既存のXMLメタデータとマージされ、最終的な新しいメタデータが生成されます。 メタデータの内容は、ドメインオブジェクトという形で表現されます。マージ前後にそのドメインオブジェクトを操作する、低レベルなフックも用意されています。 また、さらに低レベルなフックも用意されており、メタデータをファイルに保存する前に、生のXMLデータを直接取り扱うこともできます。 そのフックを使えば、プラグインがモデル化していない設定要素を微調整したり編集したりすることも可能です。
Sections of existing Eclipse files that are also the target of generated content will be amended or overwritten, depending on the particular section. The remaining sections will be left as-is.
既存のEclipseファイルの、対象のセクションだけを生成された内容で変更、もしくは上書きし、それ以外はそのまま残します。
To completely rewrite existing Eclipse files, execute a clean task together with its corresponding generation task,
like “gradle cleanEclipse eclipse
” (in that order). If you want to make this
the default behavior, add “tasks.eclipse.dependsOn(cleanEclipse)
” to your build script. This makes it
unnecessary to execute the clean task explicitly.
既存の Eclipse ファイルを完全に上書きしたい場合は、対応する生成タスクと一緒に clean タスクも実行します。
例えば gradle cleanEclipse eclipse
のように... (もちろん この順番で...)
もし、この動きをデフォルトにしたい場合は、ビルドスクリプトに eclipse.dependsOn(cleanEclipse)
を追加します。
そうすれば 明示的に clean タスクを実行する必要はありません。
This strategy can also be used for individual files that the plugin would generate. For instance,
this can be done for the “.classpath
” file with “gradle cleanEclipseClasspath eclipseClasspath
”.
Complete overwrite works equally well for individual files, for example by executing gradle cleanEclipseClasspath eclipseClasspath
.
個々のファイルについても同じように完全に上書きすることができます。例えば、 gradle cleanEclipseClasspath eclipseClasspath
のように...
The Eclipse plugin provides objects modeling the sections of the Eclipse files that are generated by Gradle. The generation lifecycle is as follows: Eclipse プラグインは Gradle が生成する Eclipse ファイルのセクションをモデリングしたドメインクラスを提供します。 生成ライフサイクルは次の通りです。
beforeMerged
hook is executed with a domain object representing the existing filebeforeMerged
フックが実行され、既存の設定内容を表すドメインオブジェクトがフックに引き渡される。whenMerged
hook is executed with a domain object representing contents of the file to be persistedwhenMerged
フックが実行され、保存される予定の設定内容を表すドメインオブジェクトがフックに引き渡される。withXml
hook is executed with a raw representation of the XML that will be persistedwithXml
フックが実行され、保存される予定の生XMLがフックに引き渡される。The following table lists the domain object used for each of the Eclipse model types: 以下は Eclipseモデルの型毎の利用ドメインオブジェクトの一覧表です。
表38.4 高度な構成フックAdvanced configuration hooks
モデルModel | beforeMerged { arg -> } 引数型argument type |
whenMerged { arg -> } 引数型argument type |
withXml { arg -> } 引数型argument type |
EclipseProject |
Project |
Project |
XmlProvider |
EclipseClasspath |
Classpath |
Classpath |
XmlProvider |
EclipseJdt |
Jdt |
Jdt |
|
EclipseWtpComponent |
WtpComponent |
WtpComponent |
XmlProvider |
EclipseWtpFacet |
WtpFacet |
WtpFacet |
XmlProvider |
A complete overwrite causes all existing content to be discarded,
thereby losing any changes made directly in the IDE. Alternatively, the beforeMerged
hook makes it possible
to overwrite just certain parts of the existing content. The following example removes all existing dependencies
from the Classpath
domain object:
完全に上書きしてしまうと 既存の内容を全て破棄してしまいます。
それにより IDE で直接変更した内容が消されてしまいます。beforeMerged
フックを使えば 既存の内容の一部だけを上書きすることができます。
次の例は 存在する全ての依存関係を classpath
ドメインオブジェクトから削除します。
例38.2 classpath の一部を上書き
build.gradle
eclipse.classpath.file { beforeMerged { classpath -> classpath.entries.removeAll { entry -> entry.kind == 'lib' || entry.kind == 'var' } } }
The resulting .classpath
file will only contain Gradle-generated dependency entries, but
not any other dependency entries that may have been present in the original file. (In the case of dependency entries,
this is also the default behavior.) Other sections of the .classpath
file will be either left as-is or merged.
The same could be done for the natures in the .project
file:
この例で生成された .classpath
ファイルには Gradleによって生成された依存関係のエントリしか含みません。
元のファイルにあった他の依存関係のエントリは全く含みません。(依存関係のエントリの場合はこれがデフォルトの振る舞いです。)
.classpath
ファイルの他のセクションは そのまま残るかマージされるでしょう。
.project
ファイルの ネーチャーでも同様です。
例38.3 project の一部を上書き
build.gradle
eclipse.project.file.beforeMerged { project -> project.natures.clear() }
The whenMerged
hook allows to manipulate the fully populated domain objects. Often this is the
preferred way to customize Eclipse files. Here is how you would export all the dependencies of an Eclipse project:
例38.4 依存関係のエクスポート
build.gradle
eclipse.classpath.file {
whenMerged { classpath ->
classpath.entries.findAll { entry -> entry.kind == 'lib' }*.exported = false
}
}
whenMerged
フックは完全にデータが設定されたドメインオブジェクトを操作することができます。
これは Eclipse のファイルをカスタマイズするのにはよい方法です。
以下は Eclipse プロジェクトの全ての依存関係をエクスポートする方法です:
例38.5 依存関係のエクスポート
build.gradle
eclipse.classpath.file {
whenMerged { classpath ->
classpath.entries.findAll { entry -> entry.kind == 'lib' }*.exported = false
}
}
The withXml
hook allows to manipulate the in-memory XML representation just before the file gets written to disk.
Although Groovy's XML support makes up for a lot, this approach is less convenient than manipulating the domain objects.
In return, you get total control over the generated file, including sections not modeled by the domain objects.
例38.6 XML のカスタマイズ
build.gradle
apply plugin: 'eclipse-wtp' eclipse.wtp.facet.file.withXml { provider -> provider.asNode().fixed.find { it.@facet == 'jst.java' }.@facet = 'jst2.java' }
withXml
フックはディスクに書き出される直前のメモリ内の XML 表現を操作することができます。
ただ、Groovy の XML サポートがいろいろと補ってくれたとしても、このアプローチはドメインオブジェクトを操作するほど便利ではありません。
その代わりに、生成されたファイルを通して全ての操作が可能です。もちろん、ドメインオブジェクトにモデル化されなかったセクションも含みます。
例38.7 XML のカスタマイズCustomizing the XML
build.gradle
apply plugin: 'eclipse-wtp' eclipse.wtp.facet.file.withXml { provider -> provider.asNode().fixed.find { it.@facet == 'jst.java' }.@facet = 'jst2.java' }