第27章 Earプラグイン

The Ear plugin adds support for assembling web application EAR files. It adds a default EAR archive task. It doesn't require the Java plugin, but for projects that also use the Java plugin it disables the default JAR archive generation.

EarプラグインはWebアプリケーションのEARファイルアセンブリサポートを追加します。 Javaプラグインは必須ではありませんが、Javaプラグインを利用するプロジェクトに対してはデフォルトのJARアーカイブ生成を無効にします。

27.1. 使用方法Usage

To use the Ear plugin, include the following in your build script:

Earプラグインを使うには、ビルドスクリプトに以下を含めてください:

例27.1 Earプラグインの利用

build.gradle

apply plugin: 'ear'

27.2. タスクTasks

The Ear plugin adds the following tasks to the project.

Earプラグインはプロジェクトに以下のタスクを追加します。

表27.1 Earプラグイン - タスクEar plugin - tasks

タスク名Task name 依存先Depends on Type 説明Description
ear compile(Javaプラグインが同時に適用されている場合のみ)(only if the Java plugin is also applied) Ear アプリケーションのEARファイルをアセンブルAssembles the application EAR file.

The Ear plugin adds the following dependencies to tasks added by the base plugin.

Earプラグインはベースプラグインが追加したタスクに以下の依存関係を追加します。

表27.2 Earプラグイン - タスク依存関係の追加Ear plugin - additional task dependencies

タスク名Task name依存先Depends on
assemble ear

27.3. プロジェクトレイアウトProject layout

表27.3 Earプラグイン - プロジェクトレイアウトEar plugin - project layout

ディレクトリDirectory 意味Meaning
src/main/application META-INFディレクトリなどのEarリソースEar resources, such as a META-INF directory

27.4. 依存関係の管理Dependency management

The Ear plugin adds two dependency configurations: deploy and earlib. All dependencies in the deploy configuration are placed in the root of the EAR archive, and are not transitive. All dependencies in the earlib configuration are placed in the 'lib' directory in the EAR archive and are transitive.

Earプラグインは2つの依存関係コンフィグレーションを追加します: deployおよびearlib deployコンフィグレーションにおけるすべての依存関係はEARアーカイブのルートに配置され、それらは推移的ではありませんearlibコンフィグレーションにおけるすべての依存関係はEARアーカイブの'lib'ディレクトリに配置され、推移的です

27.5. 規約プロパティConvention properties

表27.4 Earプラグイン - ディレクトリプロパティEar plugin - directory properties

プロパティ名Property name Type デフォルト値Default value 説明Description
appDirName String src/main/application アプリケーションのソースディレクトリ名(プロジェクトディレクトリに対する相対パス)The name of the application source directory, relative to the project directory.
libDirName String lib 生成されたEARに含まれるlibディレクトリ名The name of the lib directory inside the generated EAR.
deploymentDescriptor org.gradle.plugins.ear.descriptor.DeploymentDescriptor デプロイメントディスクリプター、デフォルトは通常application.xml A deployment descriptor with sensible defaults named application.xml application.xmlなど、デプトイメントディスクリプタファイルを生成するためのメタデータ。 このファイルが既にappDirName/META-INFに存在している場合は既存のファイルの内容が利用され、ear.deploymentDescriptorでの設定内容は無視される。 Metadata to generate a deployment descriptor file, e.g. application.xml. If this file already exists in the appDirName/META-INF then the existing file contents will be used and the explicit configuration in the ear.deploymentDescriptor will be ignored.

These properties are provided by a EarPluginConvention convention object.

これらのプロパティは規約オブジェクトEarPluginConventionが提供します。

27.6. Ear

The default behavior of the Ear task is to copy the content of src/main/application to the root of the archive. If your application directory doesn't contain a META-INF/application.xml deployment descriptor then one will be generated for you.

Earタスクのデフォルトのふるまいは、src/main/applicationの内容をアーカイブのルートにコピーすることです。 applicationディレクトリがデプロイメントディスクリプタMETA-INF/application.xmlを含まない場合は、生成してくれます。

The Ear class in the API documentation has additional useful information.

Earも参照してみてください。

27.7. カスタマイズCustomizing

Here is an example with the most important customization options:

最も重要なカスタマイズオプションを使う例はこちらです:

例27.2 Earプラグインのカスタマイズ

build.gradle

apply plugin: 'ear'
apply plugin: 'java'

repositories { mavenCentral() }

dependencies {
    // The following dependencies will be the ear modules and
    // will be placed in the ear root
    deploy project(':war')

    // The following dependencies will become ear libs and will
    // be placed in a dir configured via the libDirName property
    earlib group: 'log4j', name: 'log4j', version: '1.2.15', ext: 'jar'
}

ear {
    appDirName 'src/main/app'  // use application metadata found in this folder
    // put dependent libraries into APP-INF/lib inside the generated EAR
    libDirName 'APP-INF/lib'
    deploymentDescriptor {  // custom entries for application.xml:
//      fileName = "application.xml"  // same as the default value
//      version = "6"  // same as the default value
        applicationName = "customear"
        initializeInOrder = true
        displayName = "Custom Ear"  // defaults to project.name
        // defaults to project.description if not set
        description = "My customized EAR for the Gradle documentation"
//      libraryDirectory = "APP-INF/lib"  // not needed, above libDirName setting does this
//      module("my.jar", "java")  // won't deploy as my.jar isn't deploy dependency
//      webModule("my.war", "/")  // won't deploy as my.war isn't deploy dependency
        securityRole "admin"
        securityRole "superadmin"
        withXml { provider -> // add a custom node to the XML
            provider.asNode().appendNode("data-source", "my/data/source")
        }
    }
}

You can also use customization options that the Ear task provides, such as from and metaInf.

frommetaInfといった、Earタスクが提供するカスタマイズオプションも利用できます。

27.8. カスタムのディスクリプタファイルを使うUsing custom descriptor file

You may already have appropriate settings in a application.xml file and want to use that instead of configuring the ear.deploymentDescriptor section of the build script. To accommodate that goal, place the META-INF/application.xml in the right place inside your source folders (see the appDirName property). The file contents will be used and the explicit configuration in the ear.deploymentDescriptor will be ignored.

ear.deploymentDescriptorセクションで設定するかわりに、既にapplication.xmlがあって、それを使いたいとしましょう。 そのためにはMETA-INF/application.xmlをソースフォルダ内の適切な場所に配置します(appDirNameプロパティを参照)。 既存のファイルの内容が利用され、ear.deploymentDescriptorの設定内容は無視されます。