apply plugin: 'maven-publish' apply plugin: 'signing' task androidSourcesJar(type: Jar) { classifier = 'sources' from android.sourceSets.main.java.source } 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 description = 'Kongzue DialogX' // If your project has a dedicated site, use its URL here url = 'https://github.com/kongzue/DialogX/' 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 = 'kongzue' name = 'kongzue' email = 'myzcxhh@live.cn' } } // Version control info, if you're using GitHub, follow the format as seen here scm { //修改成你的Git地址: connection = 'scm:git:github.com/kongzue/DialogX.git' developerConnection = 'scm:git:ssh://github.com/kongzue/DialogX.git' //分支地址: url = 'https://github.com/kongzue/DialogX/tree/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) } } } } } 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 = "DialogX" def releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2/" def snapshotsRepoUrl = "https://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 }