apply plugin: 'maven-publish'
apply plugin: 'signing'

ext {
    PUBLISH_GROUP_ID = 'io.github.yyxxgame.sdk'
    PUBLISH_ARTIFACT_ID = 'yyxx-comm-core'
    PUBLISH_VERSION = '3.0.305'
}


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



Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
properties.each { name, value ->
    ext[name] = value
}


task androidSourcesJar(type: Jar) {
    archiveClassifier.set('source')
    if (project.plugins.findPlugin('com.android.library')) {
        from android.sourceSets.main.java.srcDirs
    } else {
        form sourceSets.main.java.srcDirs
    }
    exclude "**/R.class"
    exclude "**/BuildConfig.class"
}

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/$PUBLISH_ARTIFACT_ID" + "-" + "$PUBLISH_VERSION"+ ".aar")
            artifact androidSourcesJar

            // Self-explanatory metadata for the most part
            pom {
                name = "${PUBLISH_GROUP_ID}${PUBLISH_ARTIFACT_ID}"
                description = 'game comm sdk of yyxx_comm'
                // If your project has a dedicated site, use its URL here
                url = 'https://github.com/yyxxgame'
                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 = 'yyxxgame'
                        name = 'yyxxgame'
                        email = 'developcentre@yyxxgame.com'
                    }
                }
                // Version control info, if you're using GitHub, follow the format as seen here
                scm {
                    //修改成你的Git地址：
                    connection = 'scm:git:gogs.yyxxgame.com:3000/Client/YYXXCommSdk.git'
                    developerConnection = 'scm:git:ssh://gogs.yyxxgame.com:3000/Client/YYXXCommSdk.git'
                    //分支地址：
                    url = 'http://gogs.yyxxgame.com:3000/Client/YYXXCommSdk.git'
                }
                // A slightly hacky fix so that your POM will include any transitive dependencies
                // that your library builds upon
                withXml {
                    def dependenciesNode = asNode().appendNode('dependencies')
                    for (def node : project.configurations.implementation.allDependencies) {
                        if (node.group == "null" || node.name == "unspecified" || node.version == "null") {
                            break
                        }
                        def dependencyNode = dependenciesNode.appendNode('dependency')
                        dependencyNode.appendNode('groupId', node.group)
                        dependencyNode.appendNode('artifactId', node.name)
                        dependencyNode.appendNode('version', node.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
            name = "mavencentral"

            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
}

publishReleasePublicationToMavencentralRepository.dependsOn(assemble)
apply from: 'buildJar.gradle'
