| plugins { |
| id "maven-publish" |
| } |
| |
| description = 'gRPC: BOM' |
| |
| publishing { |
| publications { |
| maven(MavenPublication) { |
| // remove all other artifacts since BOM doesn't generates any Jar |
| artifacts = [] |
| |
| pom.withXml { |
| // Generate bom using subprojects |
| def internalProjects = [ |
| project.name, |
| 'grpc-compiler', |
| ] |
| |
| def dependencyManagement = asNode().appendNode('dependencyManagement') |
| def dependencies = dependencyManagement.appendNode('dependencies') |
| rootProject.subprojects.each { subproject -> |
| if (internalProjects.contains(subproject.name)) { |
| return |
| } |
| if (!subproject.hasProperty('publishMavenPublicationToMavenRepository')) { |
| return |
| } |
| if (!subproject.publishMavenPublicationToMavenRepository.enabled) { |
| return |
| } |
| def dependencyNode = dependencies.appendNode('dependency') |
| dependencyNode.appendNode('groupId', subproject.group) |
| dependencyNode.appendNode('artifactId', subproject.name) |
| dependencyNode.appendNode('version', subproject.version) |
| } |
| // add protoc gen (produced by grpc-compiler with different artifact name) |
| def dependencyNode = dependencies.appendNode('dependency') |
| dependencyNode.appendNode('groupId', project.group) |
| dependencyNode.appendNode('artifactId', 'protoc-gen-grpc-java') |
| dependencyNode.appendNode('version', project.version) |
| dependencyNode.appendNode('type', 'pom') |
| } |
| } |
| } |
| } |