美文网首页
Gradle7.0以上版本上传maven仓库

Gradle7.0以上版本上传maven仓库

作者: 丹丹无敌 | 来源:发表于2023-05-03 10:23 被阅读0次

    Gradle打包API文档地址

    使用 Maven Publish 插件

    使用Maven实现组件化类库发布

    在Gradle7.0版本以上,要进行maven打包生成aar或jar,需要引入插件:maven-publish

    打包jar的脚本如下:

    apply plugin: 'maven-publish'
    
    def projectConfigPath = "../../../project_maven_upload.properties"
    
    Properties prop = new Properties()
    prop.load(new FileInputStream(file(projectConfigPath)))
    
    //maven仓库地址
    def RELEASE_REPOSITORY_URL = prop.getProperty("maven-release-url")
    //maven快照仓库地址
    def SNAPSHOT_REPOSITORY_URL = prop.getProperty("maven-snapshot-url")
    def NEXUS_USERNAME = prop.getProperty("maven-credentials-username")
    def NEXUS_PASSWORD = prop.getProperty("maven-credentials-password")
    
    publishing {
        publications {
            maven {
                    //allowInsecureProtocol(true)
                    name("ReleaseMaven")
                    url = RELEASE_REPOSITORY_URL
                    credentials {
                        username = NEXUS_USERNAME
                        password = NEXUS_PASSWORD
                    }
                }
                maven {
                    name("SnapshotMaven")
                    url = SNAPSHOT_REPOSITORY_URL
                    credentials {
                        username = NEXUS_USERNAME
                        password = NEXUS_PASSWORD
                    }
                }
            }
            publications {
                Production(MavenPublication) {
                    from components.java
                    artifact androidSourcesJar //打包源码,去除这行打的包将看不到源码
                    groupId = GROUP
                    artifactId = POM_ARTIFACT_ID
                    version = VERSION_NAME
                }
            }
        }
    }
    
    // 用于打包源代码的任务
    task androidSourcesJar(type: Jar) {
        archiveClassifier.set('sources')
        //from android.sourceSets.main.java.sourceFiles //仅Java源码
        from android.sourceSets.main.java.srcDirs //包括Java和Kotlin源码
    }
    

    打包生成aar包并进行上传到远程仓库,脚本如下:

    apply plugin: 'maven-publish'
    
    def projectConfigPath = "../../../project_maven_upload.properties"
    
    Properties prop = new Properties()
    prop.load(new FileInputStream(file(projectConfigPath)))
    
    //maven仓库地址
    def RELEASE_REPOSITORY_URL = prop.getProperty("maven-release-url")
    //maven快照仓库地址
    def SNAPSHOT_REPOSITORY_URL = prop.getProperty("maven-snapshot-url")
    def NEXUS_USERNAME = prop.getProperty("maven-credentials-username")
    def NEXUS_PASSWORD = prop.getProperty("maven-credentials-password")
    
    afterEvaluate {
        publishing {
            repositories {
                maven {
                    //allowInsecureProtocol(true)
                    name("ReleaseMaven")
                    url = RELEASE_REPOSITORY_URL
                    credentials {
                        username = NEXUS_USERNAME
                        password = NEXUS_PASSWORD
                    }
                }
                maven {
                    name("SnapshotMaven")
                    url = SNAPSHOT_REPOSITORY_URL
                    credentials {
                        username = NEXUS_USERNAME
                        password = NEXUS_PASSWORD
                    }
                }
            }
            publications {
                Production(MavenPublication) {
                    from components.release
                    artifact androidSourcesJar //打包源码,去除这行打的包将看不到源码
                    groupId = GROUP
                    artifactId = POM_ARTIFACT_ID
                    version = VERSION_NAME
                }
                Develop(MavenPublication) {
                    from components.debug
                    artifact androidSourcesJar //打包源码,去除这行打的包将看不到源码
                    groupId = GROUP
                    artifactId = POM_ARTIFACT_ID
                    version = "${VERSION_NAME}-SNAPSHOT"
                }
            }
        }
    }
    
    // 用于打包源代码的任务
    task androidSourcesJar(type: Jar) {
        archiveClassifier.set('sources')
        //from android.sourceSets.main.java.sourceFiles //仅Java源码
        from android.sourceSets.main.java.srcDirs //包括Java和Kotlin源码
    }
    
    

    相关文章

      网友评论

          本文标题:Gradle7.0以上版本上传maven仓库

          本文链接:https://www.haomeiwen.com/subject/vmazjdtx.html