JavaPluginExtension

用於 JVM (Java) 基礎專案的通用配置。此擴展由 JavaBasePlugin 新增,更適合命名為 JvmPluginExtension 擴展。它用於配置專案許多與 JVM 相關的設定和行為。

屬性

屬性描述
docsDir

傳回指向根目錄的檔案,該目錄應被用於所有文件。

sourceCompatibility

用於編譯 Java 原始碼的來源相容性。

sourceSets

原始碼集容器。

targetCompatibility

用於編譯 Java 原始碼的目標相容性。

testReportDir

傳回指向根目錄的檔案,該目錄將用於報告。

testResultsDir

傳回指向測試結果根目錄的檔案。

toolchain

取得專案範圍的工具鏈需求,這些需求將用於需要工具鏈中工具的任務 (例如 JavaCompile)。

方法

方法描述
disableAutoTargetJvm()

如果呼叫此方法,Gradle 將不會自動嘗試獲取與此模組目標相容性相容的 JVM 版本的依賴項。

manifest()

建立 Manifest 的新實例。

manifest(closure)

建立並配置 Manifest 的新實例。給定的 closure 在返回之前配置新的 manifest 實例。

manifest(action)

建立並配置 Manifest 的新實例。

registerFeature(name, configureAction)

註冊一個功能。

toolchain(action)

配置專案範圍的工具鏈需求,用於需要工具鏈中工具的任務 (例如 JavaCompile)。

withJavadocJar()

新增一個 javadocJar 任務,該任務將把 javadoc 任務的輸出打包在一個分類器為 javadoc 的 JAR 中。

withSourcesJar()

新增一個 sourcesJar 任務,該任務將把主要 SourceSet 的 Java 原始碼打包在一個分類器為 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 的新實例。給定的 closure 在返回之前配置新的 manifest 實例。

Manifest manifest(Action<? super Manifest> action)

建立並配置 Manifest 的新實例。

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

註冊一個功能。

新功能將具有與此專案的「群組」、「名稱」+ 功能名稱和版本相對應的預設功能。例如,如果組件的群組為「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 任務的輸出打包在一個分類器為 javadoc 的 JAR 中。

產生的產出物在 java 組件上註冊為文件變體,並新增為 assemble 任務的依賴項。這表示如果也應用了 maven-publishivy-publish,則 javadoc JAR 將會發佈。

如果專案已經有一個名為 javadocJar 的任務,則不會建立任何任務。

如果 Javadoc 變體僅應透過呼叫或連接「:javadocJar」任務在本地建置,則也可以透過 AdhocComponentWithVariants.withVariantsFromConfiguration(org.gradle.api.artifacts.Configuration, org.gradle.api.Action) 使用 ConfigurationVariantDetails.skip() 來停用 Javadoc 變體的發佈。

void withSourcesJar()

新增一個 sourcesJar 任務,該任務將把主要 SourceSet 的 Java 原始碼打包在一個分類器為 sources 的 JAR 中。

產生的產出物在 java 組件上註冊為文件變體,並新增為 assemble 任務的依賴項。這表示如果也應用了 maven-publishivy-publish,則 sources JAR 將會發佈。

如果專案已經有一個名為 sourcesJar 的任務,則不會建立任何任務。

如果 sources 變體僅應透過呼叫或連接「:sourcesJar」任務在本地建置,則也可以透過 AdhocComponentWithVariants.withVariantsFromConfiguration(org.gradle.api.artifacts.Configuration, org.gradle.api.Action) 使用 ConfigurationVariantDetails.skip() 來停用 sources 變體的發佈。

腳本區塊詳細資訊

sourceSets { }

配置此專案的原始碼集。

給定的 closure 會被執行以配置 SourceSetContainerSourceSetContainer 作為其委派項傳遞給 closure。

請參閱以下範例,了解如何存取 SourceSet 'main' 以及如何配置 SourceDirectorySet 'java' 以排除某些套件的編譯。

plugins {
    id 'java'
}

sourceSets {
  main {
    java {
      exclude 'some/unwanted/package/**'
    }
  }
}