API 文件 | SourceSetOutput (來源集輸出) |
---|
所有輸出目錄(編譯後的類別、處理後的資源等)的集合 - 請注意 SourceSetOutput
擴展了 FileCollection
。
提供來源集的輸出資訊。允許配置預設輸出目錄並指定額外的輸出目錄。
plugins { id 'java' } sourceSets { main { //if you truly want to override the defaults: output.resourcesDir = file('out/bin') // Compiled Java classes should use this directory java.destinationDirectory.set(file('out/bin')) } }
使用產生的資源。
一般來說,我們建議將資源產生到與常規 resourcesDir 和 classesDirs 不同的資料夾中。通常,這會使建置更容易理解和維護。此外,它還提供了一些額外的好處,因為其他 Gradle 外掛可以利用在 SourceSet.output 中「註冊」的輸出目錄。例如:Java 外掛將在計算類別路徑和打包內容時使用這些目錄;IDEA 和 Eclipse 外掛會將這些資料夾放在相關的類別路徑上。
如何使用產生資源的範例
plugins { id 'java' } def generateResourcesTask = tasks.register("generate-resources", GenerateResourcesTask) { resourcesDir.set(layout.buildDirectory.dir("generated-resources/main")) } // Include all outputs of the `generate-resources` task as outputs of the main sourceSet. sourceSets { main { output.dir(generateResourcesTask) } } abstract class GenerateResourcesTask extends DefaultTask { @OutputDirectory abstract DirectoryProperty getResourcesDir() @TaskAction def generateResources() { def generated = resourcesDir.file("myGeneratedResource.properties").get().asFile generated.text = "message=Stay happy!" } }
在 SourceSetOutput.dir(java.lang.Object)
和 SourceSetOutput.getDirs()
中找到更多資訊
屬性 | 描述 |
classesDirs | 包含編譯後類別的目錄。 |
resourcesDir | 資源的輸出目錄 |
方法 | 描述 |
dir(dir) | 註冊一個額外的輸出目錄。適用於產生的資源。 |
dir(options, dir) | 註冊一個額外的輸出目錄和 builtBy 資訊。適用於產生的資源。 |
getDirs() | 傳回使用 #dir 方法註冊的所有目錄。每個檔案都解析為 |
FileCollection
classesDirs
(唯讀)
包含編譯後類別的目錄。
- 使用
java
外掛的預設值 - 每個
的檔案集合${project.layout.buildDirectory}
/classes/${sourceDirectorySet.name}
/${sourceSet.name}
File
resourcesDir
資源的輸出目錄
請參閱 SourceSetOutput
中的範例
- 使用
java
外掛的預設值 ${project.layout.buildDirectory}
/classes/${sourceSet.name}
註冊一個額外的輸出目錄和 builtBy 資訊。適用於產生的資源。
請參閱 SourceSetOutput
中的範例
FileCollection
getDirs
()
傳回使用 #dir 方法註冊的所有目錄。每個檔案都解析為 Project.file(java.lang.Object)
請參閱 SourceSetOutput
中的範例