EclipseWtp组件

允许微调 Eclipse 插件的 wtp 组件详细信息

混合所有可能属性的使用示例。请记住,通常您不必直接配置它们,因为 Gradle 是免费配置的!

plugins {
    id 'war' // or 'ear' or 'java'
    id 'eclipse-wtp'
}

configurations {
  someInterestingConfiguration
  anotherConfiguration
}

eclipse {

  //if you want parts of paths in resulting file(s) to be replaced by variables (files):
  pathVariables 'GRADLE_HOME': file('/best/software/gradle'), 'TOMCAT_HOME': file('../tomcat')

  wtp {
    component {
      //you can configure the context path:
      contextPath = 'someContextPath'

      //you can configure the deployName:
      deployName = 'killerApp'

      //you can alter the wb-resource elements.
      //non-existing source dirs won't be added to the component file.
      sourceDirs += file('someExtraFolder')

      // dependencies to mark as deployable with lib folder deploy path
      libConfigurations += [ configurations.someInterestingConfiguration ]

      // dependencies to mark as deployable with root folder deploy path
      rootConfigurations += [ configurations.someInterestingConfiguration ]

      // dependencies to exclude from wtp deployment
      minusConfigurations << configurations.anotherConfiguration

      //you can add a wb-resource elements; mandatory keys: 'sourcePath', 'deployPath':
      //if sourcePath points to non-existing folder it will *not* be added.
      resource sourcePath: 'extra/resource', deployPath: 'deployment/resource'

      //you can add a wb-property elements; mandatory keys: 'name', 'value':
      property name: 'moodOfTheDay', value: ':-D'
    }
  }
}

为了解决边缘情况,用户可以对生成的 XML 文件执行高级配置。还可能通过 beforeMerged 和 whenMerged 闭包影响 eclipse 插件合并现有配置的方式。

beforeMerged 和whenMerged 闭包接收WtpComponent对象

高级配置示例:

plugins {
    id 'war'
    id 'eclipse-wtp'
}

eclipse {

  wtp {
    component {
      file {
        //if you want to mess with the resulting XML in whatever way you fancy
        withXml {
          def node = it.asNode()
          node.appendNode('xml', 'is what I love')
        }

        //closure executed after wtp component file content is loaded from existing file
        //but before gradle build information is merged
        beforeMerged { wtpComponent ->
          //tinker with WtpComponent here
        }

        //closure executed after wtp component file content is loaded from existing file
        //and after gradle build information is merged
        whenMerged { wtpComponent ->
          //you can tinker with the WtpComponent here
        }
      }
    }
  }
}

特性

财产描述
classesDeployPath

类的部署路径。

contextPath

Web 应用程序的上下文路径

deployName

要使用的部署名称。

file

EclipseWtpComponent.file(org.gradle.api.Action)

libConfigurations

其文件将被标记为部署的配置,部署路径为EclipseWtpComponent.getLibDeployPath().

libDeployPath

库的部署路径。

minusConfigurations

其文件将从 wtp 部署中排除的配置。

properties

附加属性元素。

resources

附加的 wb 资源元素。

rootConfigurations

其文件将被标记为使用部署路径“/”进行部署的配置。

sourceDirs

要转换为 wb-resource 元素的源目录。

方法

方法描述
file(action)

启用高级配置,例如修改输出 XML 或影响现有 wtp 组件文件内容与 gradle 构建信息合并的方式。

property(args)

添加属性。

resource(args)

添加 wb 资源。

脚本块

堵塞描述
file

启用高级配置,例如修改输出 XML 或影响现有 wtp 组件文件内容与 gradle 构建信息合并的方式

物业详情

String classesDeployPath

类的部署路径。

有关示例,请参阅文档EclipseWtp

默认带有eclipsewar插件:
/WEB-INF/classes
默认带有eclipseear插件:
/

String contextPath

Web 应用程序的上下文路径

有关示例,请参阅文档EclipseWtp

默认带有eclipsewar插件:
project.war.baseName

String deployName

要使用的部署名称。

有关示例,请参阅文档EclipseWtp

默认带有eclipsewar插件:
eclipse.project.name
默认带有eclipseear插件:
eclipse.project.name

Set<Configuration> libConfigurations

其文件将被标记为部署的配置,部署路径为EclipseWtpComponent.getLibDeployPath().

有关示例,请参阅文档EclipseWtp

默认带有eclipsewar插件:
[project.configurations.runtimeClasspath]
默认带有eclipseear插件:
[project.configurations.earlib]

String libDeployPath

库的部署路径。

有关示例,请参阅文档EclipseWtp

默认带有eclipsewar插件:
/WEB-INF/lib
默认带有eclipseear插件:
/lib

Set<Configuration> minusConfigurations

其文件将从 wtp 部署中排除的配置。

有关示例,请参阅文档EclipseWtp

默认带有eclipsewar插件:
[project.configurations.providedRuntime]
默认带有eclipseear插件:
[]

List<WbProperty> properties

附加属性元素。

有关示例,请参阅文档EclipseWtp

默认带有eclipsewar插件:
[]
默认带有eclipseear插件:
[]

List<WbResource> resources

附加的 wb 资源元素。

有关示例,请参阅文档EclipseWtp

只有链接到现有目录 ( WbResource.getSourcePath()) 的资源才会添加到 wtp 组件文件中。原因是项目导入Eclipse时,不存在的资源目录声明会导致错误。

默认带有eclipsewar插件:
[deployPath: '/', sourcePath: project.webAppDirName]
默认带有eclipseear插件:
[]

Set<Configuration> rootConfigurations

其文件将被标记为使用部署路径“/”进行部署的配置。

有关示例,请参阅文档EclipseWtp

默认带有eclipsewar插件:
[]
默认带有eclipseear插件:
[project.configurations.deploy]]

Set<File> sourceDirs

要转换为 wb-resource 元素的源目录。

有关示例,请参阅文档EclipseWtp

只有存在的源目录才会添加到 wtp 组件文件中。将项目导入 Eclipse 时,不存在的资源目录声明会导致错误。

默认带有eclipsewar插件:
源目录来自project.sourceSets.main.allSource
默认带有eclipseear插件:
java除非未应用插件,否则相同,则:[project.appDirName]

方法详情

void file(行动)Action<? super XmlFileContentMerger>

启用高级配置,例如修改输出 XML 或影响现有 wtp 组件文件内容与 gradle 构建信息合并的方式。

例如,请参阅文档EclipseWtpComponent

void property(参数)Map<String, String>

添加属性。

有关示例,请参阅文档EclipseWtp

void resource(参数)Map<String, String>

添加 wb 资源。

有关示例,请参阅文档EclipseWtp

脚本块详细信息

file{ }

启用高级配置,例如修改输出 XML 或影响现有 wtp 组件文件内容与 gradle 构建信息合并的方式

传递给whenMerged{}和beforeMerged{}闭包的对象是类型WtpComponent

例如,请参阅文档EclipseWtpComponent