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() | 添加一个 |
withSourcesJar() | 添加一个 |
块 | 描述 |
sourceSets | 配置此项目的源集。 |
DirectoryProperty
docsDir
返回一个指向根目录的文件,该目录应被用于所有文档。
- 使用
java
插件的默认值 ${project.layout.buildDirectory}
/docs
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”+ 特性名称和版本。例如,如果组件的 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)
Action
<? super JavaToolchainSpec
>为需要工具链中工具的任务(例如 JavaCompile
)配置项目范围的工具链需求。
配置工具链不能与此扩展上的 sourceCompatibility
或 targetCompatibility
一起使用。这两个值都将来自工具链。
添加一个 javadocJar
任务,该任务将 javadoc
任务的输出打包成一个 classifier 为 javadoc
的 JAR。
生成的工件注册为 java
组件上的文档 variant,并作为 assemble
任务的依赖项添加。这意味着如果也应用了 maven-publish
或 ivy-publish
,则将发布 javadoc JAR。
如果项目已有一个名为 javadocJar
的任务,则不会创建任何任务。
Javadoc variant 的发布也可以使用 ConfigurationVariantDetails.skip()
通过 AdhocComponentWithVariants.withVariantsFromConfiguration(org.gradle.api.artifacts.Configuration, org.gradle.api.Action)
禁用,如果它应该只通过调用或连接 ':javadocJar' 任务在本地构建。
添加一个 sourcesJar
任务,该任务将主 SourceSet
的 Java 源代码打包成一个 classifier 为 sources
的 JAR。
生成的工件注册为 java
组件上的文档 variant,并作为 assemble
任务的依赖项添加。这意味着如果也应用了 maven-publish
或 ivy-publish
,则将发布 sources JAR。
如果项目已有一个名为 sourcesJar
的任务,则不会创建任何任务。
sources variant 的发布也可以使用 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/**' } } }
- 委托给
SourceSetContainer
来自sourceSets