xref: /aosp_15_r20/external/grpc-grpc-java/bom/build.gradle (revision e07d83d3ffcef9ecfc9f7f475418ec639ff0e5fe)
1*e07d83d3SAndroid Build Coastguard Workerplugins {
2*e07d83d3SAndroid Build Coastguard Worker  id "maven-publish"
3*e07d83d3SAndroid Build Coastguard Worker}
4*e07d83d3SAndroid Build Coastguard Worker
5*e07d83d3SAndroid Build Coastguard Workerdescription = 'gRPC: BOM'
6*e07d83d3SAndroid Build Coastguard Worker
7*e07d83d3SAndroid Build Coastguard Workerpublishing {
8*e07d83d3SAndroid Build Coastguard Worker  publications {
9*e07d83d3SAndroid Build Coastguard Worker    maven(MavenPublication) {
10*e07d83d3SAndroid Build Coastguard Worker      // remove all other artifacts since BOM doesn't generates any Jar
11*e07d83d3SAndroid Build Coastguard Worker      artifacts = []
12*e07d83d3SAndroid Build Coastguard Worker
13*e07d83d3SAndroid Build Coastguard Worker      pom.withXml {
14*e07d83d3SAndroid Build Coastguard Worker        // Generate bom using subprojects
15*e07d83d3SAndroid Build Coastguard Worker        def internalProjects = [
16*e07d83d3SAndroid Build Coastguard Worker          project.name,
17*e07d83d3SAndroid Build Coastguard Worker          'grpc-compiler',
18*e07d83d3SAndroid Build Coastguard Worker        ]
19*e07d83d3SAndroid Build Coastguard Worker
20*e07d83d3SAndroid Build Coastguard Worker        def dependencyManagement = asNode().appendNode('dependencyManagement')
21*e07d83d3SAndroid Build Coastguard Worker        def dependencies = dependencyManagement.appendNode('dependencies')
22*e07d83d3SAndroid Build Coastguard Worker        rootProject.subprojects.each { subproject ->
23*e07d83d3SAndroid Build Coastguard Worker          if (internalProjects.contains(subproject.name)) {
24*e07d83d3SAndroid Build Coastguard Worker            return
25*e07d83d3SAndroid Build Coastguard Worker          }
26*e07d83d3SAndroid Build Coastguard Worker          if (!subproject.hasProperty('publishMavenPublicationToMavenRepository')) {
27*e07d83d3SAndroid Build Coastguard Worker            return
28*e07d83d3SAndroid Build Coastguard Worker          }
29*e07d83d3SAndroid Build Coastguard Worker          if (!subproject.publishMavenPublicationToMavenRepository.enabled) {
30*e07d83d3SAndroid Build Coastguard Worker            return
31*e07d83d3SAndroid Build Coastguard Worker          }
32*e07d83d3SAndroid Build Coastguard Worker          def dependencyNode = dependencies.appendNode('dependency')
33*e07d83d3SAndroid Build Coastguard Worker          dependencyNode.appendNode('groupId', subproject.group)
34*e07d83d3SAndroid Build Coastguard Worker          dependencyNode.appendNode('artifactId', subproject.name)
35*e07d83d3SAndroid Build Coastguard Worker          dependencyNode.appendNode('version', subproject.version)
36*e07d83d3SAndroid Build Coastguard Worker        }
37*e07d83d3SAndroid Build Coastguard Worker        // add protoc gen (produced by grpc-compiler with different artifact name)
38*e07d83d3SAndroid Build Coastguard Worker        def dependencyNode = dependencies.appendNode('dependency')
39*e07d83d3SAndroid Build Coastguard Worker        dependencyNode.appendNode('groupId', project.group)
40*e07d83d3SAndroid Build Coastguard Worker        dependencyNode.appendNode('artifactId', 'protoc-gen-grpc-java')
41*e07d83d3SAndroid Build Coastguard Worker        dependencyNode.appendNode('version', project.version)
42*e07d83d3SAndroid Build Coastguard Worker        dependencyNode.appendNode('type', 'pom')
43*e07d83d3SAndroid Build Coastguard Worker      }
44*e07d83d3SAndroid Build Coastguard Worker    }
45*e07d83d3SAndroid Build Coastguard Worker  }
46*e07d83d3SAndroid Build Coastguard Worker}
47