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