自学内容网 自学内容网

maven-publish 打包成依赖库到maven

plugins {
    id 'maven-publish'
}

gradle 8以下

task generateSourcesJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
    classifier "sources"
}

gradle 8


task generateSourcesJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
//    classifier "sources"
    archiveClassifier.set("sources")
}

publishing {
    //maven配置参数
    repositories {
        maven {
            allowInsecureProtocol = true
            url = 'http://...'   //仓库地址 到你的文件夹路径例如 maven-releases
            credentials {
                username 'admin'  //账号
                password 'admin'  //密码
            }
        }
    }
    publications {
        //名字可以随意,如果有多渠道,整段再下面多复制一个
        Publish(MavenPublication) {
            groupId = 'com.cmwl'//公司域名
            //def projectName = project.getName()
            artifactId = "lib_test"//该aar包的名称
            version = '1.0.1'//版本号
            // 必须有这个 否则不会上传AAR包
            afterEvaluate { artifact(tasks.getByName("bundleReleaseAar")) }
            // 必须是多渠道,需要指定aar路径
            //afterEvaluate { artifact("build/outputs/aar/app-debug.aar") }
            // 上传source,这样使用方可以看到方法注释
            artifact generateSourcesJar

            // pom文件中声明依赖,从而传递到使用方
            pom.withXml { a ->
                def dependenciesNode = asNode().appendNode('dependencies')
                configurations.implementation.allDependencies.each {
                    // 避免出现空节点或 artifactId=unspecified 的节点
                    if (it.group != null && (it.name != null && "unspecified" != it.name) && it.version != null) {
                        println "空节点导致自定义gropid失效"
                        println "dependency=${it.toString()}"
                        def dependencyNode = dependenciesNode.appendNode('dependency')
                        dependencyNode.appendNode('groupId', it.group)
                        dependencyNode.appendNode('artifactId', it.name)
                        dependencyNode.appendNode('version', it.version)
                        dependencyNode.appendNode('scope', 'implementation')
                    }
                }
            }
        }
    }
}

提交到mave仓库

在这里插入图片描述

使用

  maven {
            allowInsecureProtocol = true
            url 'http://.../maven-releases'  //你提交的地址
        }

在这里插入图片描述

app/bulid.gradle中

    implementation 'com.cmwl:lib_test:1.0.1'

原文地址:https://blog.csdn.net/weixin_41648633/article/details/142776717

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!