diff --git a/oss-licenses-plugin/src/main/groovy/com/google/android/gms/oss/licenses/plugin/LicensesTask.groovy b/oss-licenses-plugin/src/main/groovy/com/google/android/gms/oss/licenses/plugin/LicensesTask.groovy index 7041cf94..b2eb0ba6 100644 --- a/oss-licenses-plugin/src/main/groovy/com/google/android/gms/oss/licenses/plugin/LicensesTask.groovy +++ b/oss-licenses-plugin/src/main/groovy/com/google/android/gms/oss/licenses/plugin/LicensesTask.groovy @@ -22,6 +22,7 @@ import org.gradle.api.artifacts.component.ModuleComponentIdentifier import org.gradle.api.artifacts.result.ResolvedArtifactResult import org.gradle.api.internal.artifacts.DefaultModuleIdentifier import org.gradle.api.tasks.InputFile +import org.gradle.api.tasks.InputFiles import org.gradle.api.tasks.OutputDirectory import org.gradle.api.tasks.OutputFile import org.gradle.api.tasks.TaskAction @@ -59,6 +60,9 @@ class LicensesTask extends DefaultTask { @InputFile public File dependenciesJson + @InputFiles + public File[] thirdPartyLicenses + @OutputDirectory public File outputDir @@ -102,6 +106,10 @@ class LicensesTask extends DefaultTask { } } + for (filename in thirdPartyLicenses.sort{it.getName().toLowerCase()}) { + addLicensesFromFile(filename) + } + writeMetadata() } @@ -229,6 +237,11 @@ class LicensesTask extends DefaultTask { } } + private void addLicensesFromFile(File filename) { + String licenseName = filename.getName() + appendLicense(licenseName, filename.getBytes()) + } + private File resolvePomFileArtifact(String group, String name, String version) { def moduleComponentIdentifier = createModuleComponentIdentifier(group, name, version) diff --git a/oss-licenses-plugin/src/main/groovy/com/google/android/gms/oss/licenses/plugin/OssLicensesPlugin.groovy b/oss-licenses-plugin/src/main/groovy/com/google/android/gms/oss/licenses/plugin/OssLicensesPlugin.groovy index 20926c50..2b8d303c 100644 --- a/oss-licenses-plugin/src/main/groovy/com/google/android/gms/oss/licenses/plugin/OssLicensesPlugin.groovy +++ b/oss-licenses-plugin/src/main/groovy/com/google/android/gms/oss/licenses/plugin/OssLicensesPlugin.groovy @@ -37,13 +37,17 @@ class OssLicensesPlugin implements Plugin { def licensesMetadataFile = new File(outputDir, "third_party_license_metadata") def licenseTask = project.tasks.create("generateLicenses", LicensesTask) + def thirdPartyLicensesDir = new File(project.rootProject.projectDir, "third_party_licenses") + def thirdPartyLicenses = thirdPartyLicensesDir.exists() ? thirdPartyLicensesDir.listFiles() : [] licenseTask.dependenciesJson = generatedJson + licenseTask.thirdPartyLicenses = thirdPartyLicenses licenseTask.outputDir = outputDir licenseTask.licenses = licensesFile licenseTask.licensesMetadata = licensesMetadataFile licenseTask.inputs.file(generatedJson) + licenseTask.inputs.files(thirdPartyLicenses) licenseTask.outputs.dir(outputDir) licenseTask.outputs.files(licensesFile, licensesMetadataFile)