How to generate maven pom with maven-publish gradle plugin after migrating to BOM

Decided to import BOM under dependencyManagement in generated pom.xml

google(MavenPublication) {
    groupId 'group'
    artifactId 'artifact'
    version android.defaultConfig.versionName
    artifact(sourceJar)
    artifact("$buildDir/outputs/aar/my-release.aar") {
        extension 'aar'
    }
    pom.withXml {
        def dependenciesNode = asNode().appendNode('dependencies')
        def dependenciesManagementNode = asNode().appendNode('dependencyManagement').appendNode('dependencies')
        configurations.implementation.allDependencies.each {
            if (it.group != null && (it.name != null || "unspecified" == it.name)) {
                if (it.name.endsWith("-bom")) {
                    def dependencyNode = dependenciesManagementNode.appendNode('dependency')
                    dependencyNode.appendNode('groupId', it.group)
                    dependencyNode.appendNode('artifactId', it.name)
                    dependencyNode.appendNode('version', it.version)
                    dependencyNode.appendNode('scope', "import")
                    dependencyNode.appendNode('type', "pom")
                } else {
                    def dependencyNode = dependenciesNode.appendNode('dependency')
                    dependencyNode.appendNode('groupId', it.group)
                    dependencyNode.appendNode('artifactId', it.name)
                    if (it.version != null) {
                        dependencyNode.appendNode('version', it.version)
                    }
                }
            }
        }
    }
}

CLICK HERE to find out more related problems solutions.

Leave a Comment

Your email address will not be published.

Scroll to Top