diff --git a/bom/build.gradle b/bom/build.gradle new file mode 100644 index 0000000000..008a86b024 --- /dev/null +++ b/bom/build.gradle @@ -0,0 +1,18 @@ +plugins { + id 'java-platform' +} + +apply from: "${rootProject.projectDir}/scripts/upload.gradle.kts" + +dependencies { + constraints { + rootProject.subprojects { subproject -> + subproject.plugins.withId('maven-publish') { + // Exclude self project from BOM. + if (subproject != this.project) { + api subproject + } + } + } + } +} \ No newline at end of file diff --git a/bom/gradle.properties b/bom/gradle.properties new file mode 100644 index 0000000000..746d988aa8 --- /dev/null +++ b/bom/gradle.properties @@ -0,0 +1,4 @@ +POM_NAME=Glide BOM +POM_ARTIFACT_ID=bom +POM_PACKAGING=pom +POM_DESCRIPTION=Glide Bill of Materials. diff --git a/scripts/upload.gradle b/scripts/upload.gradle index 9da0a80d51..37130884a2 100644 --- a/scripts/upload.gradle +++ b/scripts/upload.gradle @@ -193,6 +193,8 @@ afterEvaluate { project -> artifact androidSourcesJar artifact androidJavadocsJar artifact project.tasks.bundleReleaseAar + } else if (project.plugins.hasPlugin('java-platform')) { + from components.javaPlatform } else if (project.plugins.hasPlugin('java')) { task sourcesJar(type: Jar, dependsOn: classes) { archiveClassifier.set('sources') diff --git a/settings.gradle b/settings.gradle index dc6e754d78..44a6578521 100644 --- a/settings.gradle +++ b/settings.gradle @@ -37,6 +37,7 @@ include ':integration:sqljournaldiskcache' include ':integration:volley' include ':testutil' include ':mocks' +include ':bom' rootProject.name = 'glide-parent'