// 部分源码来自 kotlinx.coroutines def pomConfig = { licenses { license { name "AGPL-V3" url "https://www.gnu.org/licenses/agpl-3.0.txt" distribution "repo" } } developers { developer { id "mamoe" name "Mamoe Technologies" } } scm { url "https://github.com/mamoe/mirai" } } bintray { def keyProps = new Properties() def keyFile = file("../keys.properties") if (keyFile.exists()) keyFile.withInputStream { keyProps.load(it) } user = keyProps.getProperty("bintrayUser") key = keyProps.getProperty("bintrayKey") pkg { repo = 'mirai' name = "mirai-core" licenses = ['AGPL'] vcsUrl = 'https://github.com/mamoe/mirai' } } afterEvaluate { project.publishing.publications.forEach { publication -> publication.pom.withXml { def root = asNode() //root.appendNode('groupId', project.group) //root.appendNode('artifactId', project.name) //root.appendNode('version', project.version) root.appendNode('name', project.name) root.appendNode('description', project.description) root.appendNode('url', 'https://github.com/mamoe/mirai') root.children().last() + pomConfig } } } bintrayUpload.doFirst { publications = project.publishing.publications } bintrayUpload.dependsOn { def list = new LinkedList() list.add(tasks.getByName("build")) list.addAll(tasks.findAll { task -> task.name.contains('Jar') }) list.addAll(tasks.findAll { task -> task.name.startsWith('generateMetadataFileFor') }) list.addAll(tasks.findAll { task -> task.name.startsWith('generatePomFileFor') }) list } try{ // empty xxx-javadoc.jar task javadocJar(type: Jar) { archiveClassifier = 'javadoc' } } catch (Exception e){ } publishing { publications.all { // add empty javadocs (no need for MPP root publication which publishes only pom file) if (it.name != 'kotlinMultiplatform') { it.artifact(javadocJar) } // Rename MPP artifacts for backward compatibility def type = it.name switch (type) { case 'kotlinMultiplatform': it.artifactId = "$project.name" break case 'metadata': it.artifactId = "$project.name-common" break case 'jvm': it.artifactId = "${project.name.replace("-jvm", "")}" break case 'js': case 'native': it.artifactId = "$project.name-$type" break } // disable metadata everywhere, but in native modules if (type == 'maven' || type == 'metadata' || type == 'jvm' || type == 'js') { moduleDescriptorGenerator = null } } }