sobot-gson-publish-mavencentral.gradle 5.41 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13
apply plugin: 'maven-publish'
apply plugin: 'signing'

task androidSourcesJar(type: Jar) {
    classifier = 'sources'
    from android.sourceSets.main.java.source

    exclude "**/R.class"
    exclude "**/BuildConfig.class"
}

ext {
    PUBLISH_GROUP_ID = "com.sobot.library"        //项目包名
郑娜伟 committed
14 15
    PUBLISH_ARTIFACT_ID = 'gson'            //项目名
    PUBLISH_VERSION = '1.1.1'                    //版本号 1.2 已经被使用了,需要跳过它
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
}




ext["signing.keyId"] = ''
ext["signing.password"] = ''
ext["signing.secretKeyRingFile"] = ''
ext["ossrhUsername"] = ''
ext["ossrhPassword"] = ''

File secretPropsFile = project.rootProject.file('local.properties')
if (secretPropsFile.exists()) {
    println "Found secret props file, loading props"
    Properties p = new Properties()
    p.load(new FileInputStream(secretPropsFile))
    p.each { name, value ->
        ext[name] = value
    }
} else {
    println "No props file, loading env vars"
}
publishing {
    publications {
        release(MavenPublication) {
            // The coordinates of the library, being set from variables that
            // we'll set up in a moment
            groupId PUBLISH_GROUP_ID
            artifactId PUBLISH_ARTIFACT_ID
            version PUBLISH_VERSION

            // Two artifacts, the `aar` and the sources
            artifact("$buildDir/outputs/aar/${project.getName()}-release.aar")
            artifact androidSourcesJar

            // Self-explanatory metadata for the most part
            pom {
                name = PUBLISH_ARTIFACT_ID
54
                description = 'sobot json '
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
                // If your project has a dedicated site, use its URL here
                url = 'http://code.zhichidata.com/sobot_android/Sobot_module_Dev'
                licenses {
                    license {
                        //协议类型,一般默认Apache License2.0的话不用改:
                        name = 'The Apache License, Version 2.0'
                        url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    }
                }
                developers {
                    developer {
                        id = 'app_dev@sobot.com'
                        name = 'zhichi'
                        email = 'app_dev@sobot.com'
                    }
                }
                // Version control info, if you're using GitHub, follow the format as seen here
                scm {
                    //修改成你的Git地址:
                    connection = 'git@code.zhichidata.com:sobot_android/Sobot_module_Dev.git'
                    developerConnection = 'git@code.zhichidata.com:sobot_android/Sobot_module_Dev.git'
                    //分支地址:
                    url = 'http://code.zhichidata.com/sobot_android/Sobot_module_Dev/master'
                }
                // A slightly hacky fix so that your POM will include any transitive dependencies
                // that your library builds upon
//                withXml {
//                    def dependenciesNode = asNode().appendNode('dependencies')
//
//                    project.configurations.implementation.allDependencies.each {
//                        def dependencyNode = dependenciesNode.appendNode('dependency')
//                        dependencyNode.appendNode('groupId', it.group)
//                        dependencyNode.appendNode('artifactId', it.name)
//                        dependencyNode.appendNode('version', it.version)
//                    }
//                }

                withXml {
                    def dependenciesNode = asNode().appendNode('dependencies')
                    //跳过“unspecified”的依赖项
                    //避免出现问题:
                    //Execution failed for task ':sample:checkDebugAarMetadata'.
                    //> Could not resolve all files for configuration ':sample:debugRuntimeClasspath'.
                    //   > Could not find :unspecified:.
                    //     Required by:
                    project.configurations.implementation.allDependencies.each {
                        if (it.name != 'unspecified') {
                            def dependencyNode = dependenciesNode.appendNode('dependency')
                            dependencyNode.appendNode('groupId', it.group)
                            dependencyNode.appendNode('artifactId', it.name)
                            dependencyNode.appendNode('version', it.version)
                        }
                    }
                }
            }
        }
    }
    repositories {
        // The repository to publish to, Sonatype/MavenCentral
        maven {
            // This is an arbitrary name, you may also use "mavencentral" or
            // any other name that's descriptive for you
            //项目名称
郑娜伟 committed
118
            name = "gson"
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136

            def releasesRepoUrl = "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/"
            def snapshotsRepoUrl = "https://s01.oss.sonatype.org/content/repositories/snapshots/"
            // You only need this if you want to publish snapshots, otherwise just set the URL
            // to the release repo directly
            url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl

            // The username and password we've fetched earlier
            credentials {
                username ossrhUsername
                password ossrhPassword
            }
        }
    }
}
signing {
    sign publishing.publications
}