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 实例。

manifest(action)

创建并配置一个新的 Manifest 实例。

registerFeature(name, configureAction)

注册一个特性。

toolchain(action)

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

withJavadocJar()

添加一个 javadocJar 任务,该任务将 javadoc 任务的输出打包成一个 classifier 为 javadoc 的 JAR。

withSourcesJar()

添加一个 sourcesJar 任务,该任务将主 SourceSet 的 Java 源代码打包成一个 classifier 为 sources 的 JAR。

脚本块

描述
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 manifest(Action<? super Manifest> action)

创建并配置一个新的 Manifest 实例。

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

注册一个特性。

新特性将具有默认能力,对应于此项目的“group”、“name”+ 特性名称和版本。例如,如果组件的 group 是 “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) 方法来细化此特性的能力。

JavaToolchainSpec toolchain(Action<? super JavaToolchainSpec> action)

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

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

void withJavadocJar()

添加一个 javadocJar 任务,该任务将 javadoc 任务的输出打包成一个 classifier 为 javadoc 的 JAR。

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

如果项目已有一个名为 javadocJar 的任务,则不会创建任何任务。

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

void withSourcesJar()

添加一个 sourcesJar 任务,该任务将主 SourceSet 的 Java 源代码打包成一个 classifier 为 sources 的 JAR。

生成的工件注册为 java 组件上的文档 variant,并作为 assemble 任务的依赖项添加。这意味着如果也应用了 maven-publishivy-publish,则将发布 sources JAR。

如果项目已有一个名为 sourcesJar 的任务,则不会创建任何任务。

sources variant 的发布也可以使用 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/**'
    }
  }
}