API 文件 | JavaPluginExtension |
---|
用於 JVM (Java) 基礎專案的通用配置。此擴展由 JavaBasePlugin
新增,更適合命名為 JvmPluginExtension
擴展。它用於配置專案許多與 JVM 相關的設定和行為。
屬性 | 描述 |
docsDir | 傳回指向根目錄的檔案,該目錄應被用於所有文件。 |
sourceCompatibility | 用於編譯 Java 原始碼的來源相容性。 |
sourceSets | 原始碼集容器。 |
targetCompatibility | 用於編譯 Java 原始碼的目標相容性。 |
testReportDir | 傳回指向根目錄的檔案,該目錄將用於報告。 |
testResultsDir | 傳回指向測試結果根目錄的檔案。 |
toolchain | 取得專案範圍的工具鏈需求,這些需求將用於需要工具鏈中工具的任務 (例如 |
方法 | 描述 |
disableAutoTargetJvm() | 如果呼叫此方法,Gradle 將不會自動嘗試獲取與此模組目標相容性相容的 JVM 版本的依賴項。 |
manifest() | 建立 Manifest 的新實例。 |
manifest(closure) | 建立並配置 Manifest 的新實例。給定的 closure 在返回之前配置新的 manifest 實例。 |
manifest(action) | 建立並配置 Manifest 的新實例。 |
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 版本的依賴項。
每當預設行為不適用時,都應使用此方法,特別是當由於某些原因無法拆分模組,並且該模組僅具有一些需要依賴較高版本的類別時。
Manifest
manifest
()
建立 Manifest 的新實例。
void
registerFeature
(String
name, Action
<? super FeatureSpec
>
configureAction)
Action
<? super FeatureSpec
>註冊一個功能。
新功能將具有與此專案的「群組」、「名稱」+ 功能名稱和版本相對應的預設功能。例如,如果組件的群組為「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
任務的輸出打包在一個分類器為 javadoc
的 JAR 中。
產生的產出物在 java
組件上註冊為文件變體,並新增為 assemble
任務的依賴項。這表示如果也應用了 maven-publish
或 ivy-publish
,則 javadoc JAR 將會發佈。
如果專案已經有一個名為 javadocJar
的任務,則不會建立任何任務。
如果 Javadoc 變體僅應透過呼叫或連接「:javadocJar」任務在本地建置,則也可以透過 AdhocComponentWithVariants.withVariantsFromConfiguration(org.gradle.api.artifacts.Configuration, org.gradle.api.Action)
使用 ConfigurationVariantDetails.skip()
來停用 Javadoc 變體的發佈。
新增一個 sourcesJar
任務,該任務將把主要 SourceSet
的 Java 原始碼打包在一個分類器為 sources
的 JAR 中。
產生的產出物在 java
組件上註冊為文件變體,並新增為 assemble
任務的依賴項。這表示如果也應用了 maven-publish
或 ivy-publish
,則 sources JAR 將會發佈。
如果專案已經有一個名為 sourcesJar
的任務,則不會建立任何任務。
如果 sources 變體僅應透過呼叫或連接「:sourcesJar」任務在本地建置,則也可以透過 AdhocComponentWithVariants.withVariantsFromConfiguration(org.gradle.api.artifacts.Configuration, org.gradle.api.Action)
使用 ConfigurationVariantDetails.skip()
來停用 sources 變體的發佈。
配置此專案的原始碼集。
給定的 closure 會被執行以配置 SourceSetContainer
。SourceSetContainer
作為其委派項傳遞給 closure。
請參閱以下範例,了解如何存取 SourceSet
'main' 以及如何配置 SourceDirectorySet
'java' 以排除某些套件的編譯。
plugins { id 'java' } sourceSets { main { java { exclude 'some/unwanted/package/**' } } }
- 委派給
SourceSetContainer
來自sourceSets