Ear 插件 (未完成)

Ear插件添加了对组装Web应用程序EAR文件的支持。 它将添加默认EAR文件生成任务。 它不需要Java插件,对于使用Java插件的项目,它会禁用默认的JAR文件生成。

51.1.使用

使用ear插件需要在构建脚本下包括以下内容

例51.1.使用ear插件

build.gradle

  1. apply plugin 'ear'

51.2.任务

War插件会添加下列任务到项目.

表51.2.War插件-任务

任务名 依赖于 类型 描述
ear compile (仅在java插件存在时) Ear 组装应用程序Ear文件

Ear插件由其他已存在的插件添加下列依赖任务.

表51.2.Ear插件-附加的依赖任务

任务名 依赖于
assemble ear

51.3.项目布局

表25.3.Ear插件-项目布局

文件夹 含义
src/main/application Ear资源,比如META-INF目录

51.4.依赖管理

Ear插件添加了两个依赖配置:deployearlibdeploy中的所有依赖关系都放在EAR存档的根目录中,并且是不可传递的(not transitive)。 earlib配置中的所有依赖关系都放在EAR存档中的’lib’目录中,并且是可传递的(transitive)。

51.5.常用配置

表51.4.Ear插件-目录配置

属性名称 类型 默认值 描述
appDirName String src/main/application 应用的资源文件夹,为与项目的相对路径
libDirName String lib 生成的ear文件中lib目录的名字
deploymentDescriptor org.gradle.plugins.ear.descriptor.DeploymentDescriptor 在一个默认的构部署配置文件里:application.xml 生成部署描述符文件的元数据,例如 application.xml。 如果此文件已存在于appDirName / META-INF中,则将使用现有文件内容,并忽略ear.deploymentDescriptor中的显式配置。

这些属性由一个EarPluginConvention公共对象提供

51.6.Ear

War任务默认会把src/main/application的内容复制到归档目录的根目录。如果配置文件META-INF/application.xml不存在,它将被自动生成。

API文档中有更多关于Ear的信息.

51.7.定制Ear

下面的例子中有一些重要的自定义选项

例25.2.定制Ear插件

build.gradle

  1. pply plugin: 'ear'
  2. apply plugin: 'java'
  3. repositories { mavenCentral() }
  4. dependencies {
  5. // The following dependencies will be the ear modules and
  6. // will be placed in the ear root
  7. deploy project(path: ':war', configuration: 'archives')
  8. // The following dependencies will become ear libs and will
  9. // be placed in a dir configured via the libDirName property
  10. earlib group: 'log4j', name: 'log4j', version: '1.2.15', ext: 'jar'
  11. }
  12. ear {
  13. appDirName 'src/main/app' // use application metadata found in this folder
  14. // put dependent libraries into APP-INF/lib inside the generated EAR
  15. libDirName 'APP-INF/lib'
  16. deploymentDescriptor { // custom entries for application.xml:
  17. // fileName = "application.xml" // same as the default value
  18. // version = "6" // same as the default value
  19. applicationName = "customear"
  20. initializeInOrder = true
  21. displayName = "Custom Ear" // defaults to project.name
  22. // defaults to project.description if not set
  23. description = "My customized EAR for the Gradle documentation"
  24. // libraryDirectory = "APP-INF/lib" // not needed, above libDirName setting does this
  25. // module("my.jar", "java") // won't deploy as my.jar isn't deploy dependency
  26. // webModule("my.war", "/") // won't deploy as my.war isn't deploy dependency
  27. securityRole "admin"
  28. securityRole "superadmin"
  29. withXml { provider -> // add a custom node to the XML
  30. provider.asNode().appendNode("data-source", "my/data/source")
  31. }
  32. }
  33. }

你也可以使用一些Ear任务提供的自定义选项,如frommetaInf.

51.8.使用自定义的配置文件

-/-/-/-/-//-/-/-/—/-/-/-/-/-当前进度↑↑-/-/-/-/-/—/-/-/-/-/-/-/-/-/