| API 文档 | JavaPluginExtension |
|---|
用于基于 JVM (Java) 的项目的通用配置。此扩展由 JavaBasePlugin 添加,更适合命名为 JvmPluginExtension 扩展。它用于配置项目的许多 JVM 相关设置和行为。
| 属性 | 描述 |
docsDir | 返回指向应作为所有文档根目录的文件。 |
sourceCompatibility | 用于编译 Java 源文件的源兼容性。 |
sourceSets | 源集容器。 |
targetCompatibility | 用于编译 Java 源文件的目标兼容性。 |
testReportDir | 返回指向用于报告的根目录的文件。 |
testResultsDir | 返回指向测试结果根目录的文件。 |
toolchain | 获取项目范围的工具链要求,这些要求将用于需要工具链中工具的任务(例如 |
| 方法 | 描述 |
disableAutoTargetJvm() | 如果调用此方法,Gradle 将不会自动尝试获取与此模块的目标兼容性兼容的 JVM 版本的依赖项。 |
manifest() | 创建 |
manifest(closure) | 创建并配置 |
manifest(action) | 创建并配置 |
registerFeature(name, configureAction) | 注册功能。 |
toolchain(action) | 配置项目范围的工具链要求,用于需要工具链中工具的任务(例如 |
withJavadocJar() | 为本项目的主功能启用生成 Javadoc artifact。如果本项目没有定义带有主功能的组件,则此操作无效。 |
withSourcesJar() | 为本项目的主功能启用生成源 artifact。如果本项目没有定义带有主功能的组件,则此操作无效。 |
| 块 | 描述 |
sourceSets | 配置此项目的源集。 |
JavaVersion sourceCompatibility
用于编译 Java 源文件的源兼容性。
- 默认与
java插件一起使用 - 当前使用的 JVM 的值(例如,在 1.6 JVM 上为
JavaVersion.JAVA_1_6)。
SourceSetContainer sourceSets (只读)
源集容器。
DirectoryProperty testReportDir
返回指向用于报告的根目录的文件。
- 默认与
java插件一起使用 -
${project.reporting.baseDirectory}/tests
DirectoryProperty testResultsDir
返回指向测试结果根目录的文件。
- 默认与
java插件一起使用 ${project.layout.buildDirectory}/test-results
JavaToolchainSpec toolchain (只读)
获取项目范围的工具链要求,这些要求将用于需要工具链中工具的任务(例如 JavaCompile)。
配置工具链不能与此扩展上的 sourceCompatibility 或 targetCompatibility 一起使用。这两个值都将从工具链中获取。
如果调用此方法,Gradle 将不会自动尝试获取与此模块的目标兼容性兼容的 JVM 版本的依赖项。
当默认行为不适用时,应使用此功能,特别是当由于某种原因无法拆分模块并且此模块仅包含需要依赖更高版本的类时。
void registerFeature(String name, Action<? super FeatureSpec> configureAction)
Action<? super FeatureSpec>注册功能。
新功能将具有与此项目的“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)
Action<? super JavaToolchainSpec>配置项目范围的工具链要求,用于需要工具链中工具的任务(例如 JavaCompile)。
配置工具链不能与此扩展上的 sourceCompatibility 或 targetCompatibility 一起使用。这两个值都将从工具链中获取。
为本项目的主功能启用生成 Javadoc artifact。如果本项目没有定义带有主功能的组件,则此操作无效。
添加一个任务 javadocJar,它将把 javadoc 任务的输出打包到带有分类器 javadoc 的 JAR 中。
生成的文件被注册为 java 组件上的文档变体,并作为 assemble 任务的依赖项添加。这意味着如果同时应用了 maven-publish 或 ivy-publish,javadoc JAR 将被发布。
如果项目已经有名为 javadocJar 的任务,则不创建任务。
Javadoc 变体的发布也可以通过 ConfigurationVariantDetails.skip() 禁用,通过 AdhocComponentWithVariants.withVariantsFromConfiguration(org.gradle.api.artifacts.Configuration, org.gradle.api.Action),如果它应该只通过调用或连接 ':javadocJar' 任务在本地构建。
为本项目的主功能启用生成源 artifact。如果本项目没有定义带有主功能的组件,则此操作无效。
添加一个任务 sourcesJar,它将把主 SourceSet 的 Java 源文件打包到带有分类器 sources 的 JAR 中。
生成的文件被注册为 java 组件上的文档变体,并作为 assemble 任务的依赖项添加。这意味着如果同时应用了 maven-publish 或 ivy-publish,源 JAR 将被发布。
如果项目已经有名为 sourcesJar 的任务,则不创建任务。
源变体的发布可以通过 ConfigurationVariantDetails.skip() 禁用,通过 AdhocComponentWithVariants.withVariantsFromConfiguration(org.gradle.api.artifacts.Configuration, org.gradle.api.Action),如果它应该只通过调用或连接 ':sourcesJar' 任务在本地构建。
配置此项目的源集。
执行给定的闭包以配置 SourceSetContainer。SourceSetContainer 作为其委托传递给闭包。
请参阅下面的示例,了解如何访问 SourceSet 'main' 以及如何配置 SourceDirectorySet 'java' 以从编译中排除某些包。
plugins {
id 'java'
}
sourceSets {
main {
java {
exclude 'some/unwanted/package/**'
}
}
}
- 委托给
- 来自
sourceSets的SourceSetContainer