JavaPluginExtension

用于基于 JVM (Java) 的项目的通用配置。此扩展由 JavaBasePlugin 添加,更适合命名为 JvmPluginExtension 扩展。它用于配置项目的许多 JVM 相关设置和行为。

属性

属性描述
docsDir

返回指向应作为所有文档根目录的文件。

sourceCompatibility

用于编译 Java 源文件的源兼容性。

sourceSets

源集容器。

targetCompatibility

用于编译 Java 源文件的目标兼容性。

testReportDir

返回指向用于报告的根目录的文件。

testResultsDir

返回指向测试结果根目录的文件。

toolchain

获取项目范围的工具链要求,这些要求将用于需要工具链中工具的任务(例如 JavaCompile)。

方法

方法描述
disableAutoTargetJvm()

如果调用此方法,Gradle 将不会自动尝试获取与此模块的目标兼容性兼容的 JVM 版本的依赖项。

manifest()

创建 Manifest 的新实例。

manifest(closure)

创建并配置 Manifest 的新实例。给定的闭包在返回新清单实例之前对其进行配置。

manifest(action)

创建并配置 Manifest 的新实例。

registerFeature(name, configureAction)

注册功能。

toolchain(action)

配置项目范围的工具链要求,用于需要工具链中工具的任务(例如 JavaCompile)。

withJavadocJar()

为本项目的主功能启用生成 Javadoc artifact。如果本项目没有定义带有主功能的组件,则此操作无效。

withSourcesJar()

为本项目的主功能启用生成源 artifact。如果本项目没有定义带有主功能的组件,则此操作无效。

脚本块

描述
sourceSets

配置此项目的源集。

属性详情

返回指向应作为所有文档根目录的文件。

默认与java插件一起使用
${project.layout.buildDirectory}/docs

JavaVersion sourceCompatibility

用于编译 Java 源文件的源兼容性。

默认与java插件一起使用
当前使用的 JVM 的值(例如,在 1.6 JVM 上为 JavaVersion.JAVA_1_6)。

SourceSetContainer sourceSets (只读)

源集容器。

JavaVersion targetCompatibility

用于编译 Java 源文件的目标兼容性。

默认与java插件一起使用
project.sourceCompatibility

DirectoryProperty testReportDir

返回指向用于报告的根目录的文件。

默认与java插件一起使用
${project.reporting.baseDirectory}/tests

DirectoryProperty testResultsDir

返回指向测试结果根目录的文件。

默认与java插件一起使用
${project.layout.buildDirectory}/test-results

JavaToolchainSpec toolchain (只读)

获取项目范围的工具链要求,这些要求将用于需要工具链中工具的任务(例如 JavaCompile)。

配置工具链不能与此扩展上的 sourceCompatibilitytargetCompatibility 一起使用。这两个值都将从工具链中获取。

方法详情

void disableAutoTargetJvm()

如果调用此方法,Gradle 将不会自动尝试获取与此模块的目标兼容性兼容的 JVM 版本的依赖项。

当默认行为不适用时,应使用此功能,特别是当由于某种原因无法拆分模块并且此模块仅包含需要依赖更高版本的类时。

Manifest manifest()

创建 Manifest 的新实例。

Manifest manifest(Closure closure)

创建并配置 Manifest 的新实例。给定的闭包在返回新清单实例之前对其进行配置。

Manifest manifest(Action<? super Manifest> action)

创建并配置 Manifest 的新实例。

void registerFeature(String name, Action<? super FeatureSpec> configureAction)

注册功能。

新功能将具有与此项目的“group”、“name”+功能名称和版本相对应的默认功能。例如,如果组件的组是“org”,项目名称是“lib”,版本是“1.0”,功能名称是“myFeature”,那么会自动添加一个名为“org:lib-my-feature:1.0”的功能。

为了在另一个模块中消费此功能,请添加如下依赖项:

 dependencies {
     implementation(project(":lib")) {
         capabilities {
             requireCapability("org:lib-my-feature:1.0")
         }
     }
 }

FeatureSpec.capability(java.lang.String, java.lang.String, java.lang.String) 方法可用于细化此功能的 capabilities。

JavaToolchainSpec toolchain(Action<? super JavaToolchainSpec> action)

配置项目范围的工具链要求,用于需要工具链中工具的任务(例如 JavaCompile)。

配置工具链不能与此扩展上的 sourceCompatibilitytargetCompatibility 一起使用。这两个值都将从工具链中获取。

void withJavadocJar()

为本项目的主功能启用生成 Javadoc artifact。如果本项目没有定义带有主功能的组件,则此操作无效。

添加一个任务 javadocJar,它将把 javadoc 任务的输出打包到带有分类器 javadoc 的 JAR 中。

生成的文件被注册为 java 组件上的文档变体,并作为 assemble 任务的依赖项添加。这意味着如果同时应用了 maven-publishivy-publish,javadoc JAR 将被发布。

如果项目已经有名为 javadocJar 的任务,则不创建任务。

Javadoc 变体的发布也可以通过 ConfigurationVariantDetails.skip() 禁用,通过 AdhocComponentWithVariants.withVariantsFromConfiguration(org.gradle.api.artifacts.Configuration, org.gradle.api.Action),如果它应该只通过调用或连接 ':javadocJar' 任务在本地构建。

void withSourcesJar()

为本项目的主功能启用生成源 artifact。如果本项目没有定义带有主功能的组件,则此操作无效。

添加一个任务 sourcesJar,它将把主 SourceSet 的 Java 源文件打包到带有分类器 sources 的 JAR 中。

生成的文件被注册为 java 组件上的文档变体,并作为 assemble 任务的依赖项添加。这意味着如果同时应用了 maven-publishivy-publish,源 JAR 将被发布。

如果项目已经有名为 sourcesJar 的任务,则不创建任务。

源变体的发布可以通过 ConfigurationVariantDetails.skip() 禁用,通过 AdhocComponentWithVariants.withVariantsFromConfiguration(org.gradle.api.artifacts.Configuration, org.gradle.api.Action),如果它应该只通过调用或连接 ':sourcesJar' 任务在本地构建。

脚本块详情

sourceSets { }

配置此项目的源集。

执行给定的闭包以配置 SourceSetContainerSourceSetContainer 作为其委托传递给闭包。

请参阅下面的示例,了解如何访问 SourceSet 'main' 以及如何配置 SourceDirectorySet 'java' 以从编译中排除某些包。

plugins {
    id 'java'
}

sourceSets {
  main {
    java {
      exclude 'some/unwanted/package/**'
    }
  }
}
委托给
来自 sourceSetsSourceSetContainer