Ear 插件添加了用于组装 web 应用程序的 EAR 文件的支持。它添加了一个默认的 EAR archive task。它不需要 Java 插件,但是对于使用了 Java 插件的项目,它将禁用默认的 JAR archive 的生成。
要使用 Ear 的插件,请在构建脚本中包含以下语句:
使用 Ear 插件
build.gradle
apply plugin: "ear"
Ear 插件向 project 中添加了以下任务。
表 27.1. Ear 插件 - tasks
任务名称 | 依赖于 | 类型 | 描述 |
ear
|
compile (仅在也配置了使用 Java 插件的时候) |
ear | 组装应用程序 EAR 文件。 |
Ear 插件向基础插件所加入的 tasks 添加了以下的依赖。
表 27.2. Ear 插件 - 额外的 task 依赖
任务名称 | 依赖于 |
assemble | ear |
表 27.3. Ear 插件 - 项目布局
目录 | 意义 |
src/main/application
|
Ear 资源,如 META-INF 目录 |
Ear 插件添加了两个依赖配置:deploy和earlib。所有在 deploy 配置中的依赖项都放在 EAR 文件的根目录中,并且是不可传递的。所有在 earlib 配置的依赖都放在 EAR 文件的“lib”目录中,并且是可传递的。
表27.4. Ear 插件 - 目录属性
属性名称 | 类型 | 默认值 | 描述 |
appDirName
|
String
|
src/main/application
|
相对于项目目录的应用程序源目录名称。 |
libDirName
|
String
|
into(<s2>"libs"</s2>)
{
|
生成的 EAR 文件里的 lib 目录名称。 |
deploymentDescriptor
|
org.gradle.plugins.ear.descriptor.DeploymentDescriptor
|
部署描述符,它有一个合理的名为application.xml 的默认值 |
用于生成部署描述符文件的元数据,例如ear.deploymentDescriptor 中的显式配置将被忽略。 |
这些属性由一个 EarPluginConvention 公约对象提供。
Ear task 的默认行为是将 src/main/application 的内容复制到 archive 的根目录下。如果你的 application 目录没有包含 META-INF/application.xml 部署描述符,那么将会为你生成一个。
另请参阅 Ear。
下面是一个示例,展示了最重要的自定义选项:
ear 插件的自定义
build.gradle
apply plugin: "ear"
apply plugin: "java"
repositories { mavenCentral() }
dependencies {
//following dependencies will become the ear modules and placed in the ear root
deploy project(":war")
//following dependencies will become ear libs and placed in a dir configured via 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
libDirName "APP-INF/lib" // put dependency libraries into APP-INF/lib inside the generated EAR;
// also modify the generated deployment descriptor accordingly
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
description = "My customized EAR for the Gradle documentation" // defaults to project.description
// libraryDirectory = "APP-INF/lib" // not needed, because setting libDirName above did this for us
// module("my.jar", "java") // wouldn"t deploy since my.jar isn"t a deploy dependency
// webModule("my.war", "/") // wouldn"t deploy since my.war isn"t a deploy dependency
securityRole "admin"
securityRole "superadmin"
withXml { provider -> // add a custom node to the XML
provider.asNode().appendNode("data-source", "my/data/source")
}
}
}
你还可以使用 Ear 任务提供的自定义选项,如 from 和 metaInf。
假设你已经有了 application.xml ,并且想要使用它而不是去配置 ear.deploymentDescriptor 代码段。去把 META-INF/application.xml 放在你的源文件夹里的正确的位置(请查看 appDirName 属性)。这个已存在的文件的内容将会被使用,而 ear.deploymentDescriptor 里的显示配置则会被忽略。
你可能会想使用新的 Sonar Runner 插件来代替现在这个插件。尤其是因为只有 Sonar Runner 插件支持 Sonar 3.4 及更高的版本。Son...
Apache Ant 是 Apache 软件许可证下发布的。Apache 是一个由一个开源机构认证的完全成熟的开源许可证。Apache Ant 最新的版本包...
Eclipse 创建 XML 文件打开新建 XML 文件向导 你可以使用新建 XML 文件向导来创建 XML 文件。打开向导的方式有:点击 File 菜单...
Debug 调试 Java 程序我们可以在 Package Explorer 视图调试 Java 程序,操作步骤如下:鼠标右击包含 main 函数的 java 类选择 D...
管理任务在Eclipse中用TODO标签管理任务,利用这个功能可以方便地将项目中一些需要处理的任务记录下来。我们可以在 Java 代码中...
Redis Psetex 命令Redis 字符串(string) Redis Psetex 命令以毫秒为单位设置 key 的生存时间。语法 redis Psetex 命令基本语法如...
视图constraint_table_usage标识在当前数据库中被某个约束使用的所有表(这与视图table_constraints不同,它标识哪些表约束定义...
视图foreign_servers包含当前数据库中定义的所有外部服务器。只有那些当前用户能够访问(作为拥有者或具有某些特权)的外部服务...