build.gradle.kts 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. import java.util.*
  2. buildscript {
  3. repositories {
  4. mavenLocal()
  5. jcenter()
  6. mavenCentral()
  7. google()
  8. }
  9. dependencies {
  10. // Do try to waste your time.
  11. @kotlin.Suppress("GradleDependency") // 1.8.4 不能跑
  12. classpath("com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.0")
  13. }
  14. }
  15. plugins {
  16. kotlin("jvm")
  17. java
  18. id("com.jfrog.bintray") version "1.8.0"
  19. `maven-publish`
  20. // maven
  21. }
  22. val kotlinVersion: String by rootProject.ext
  23. val atomicFuVersion: String by rootProject.ext
  24. val coroutinesVersion: String by rootProject.ext
  25. val kotlinXIoVersion: String by rootProject.ext
  26. val coroutinesIoVersion: String by rootProject.ext
  27. val serializationVersion: String by rootProject.ext
  28. val klockVersion: String by rootProject.ext
  29. val ktorVersion: String by rootProject.ext
  30. description = "Java helper for Mirai"
  31. @Suppress("PropertyName")
  32. val mirai_japt_version: String by rootProject.ext
  33. version = mirai_japt_version
  34. java {
  35. sourceCompatibility = JavaVersion.VERSION_1_8
  36. targetCompatibility = JavaVersion.VERSION_1_8
  37. }
  38. kotlin {
  39. sourceSets {
  40. all {
  41. languageSettings.enableLanguageFeature("InlineClasses")
  42. languageSettings.useExperimentalAnnotation("kotlin.Experimental")
  43. }
  44. }
  45. }
  46. fun kotlinx(id: String, version: String) = "org.jetbrains.kotlinx:kotlinx-$id:$version"
  47. fun ktor(id: String, version: String) = "io.ktor:ktor-$id:$version"
  48. dependencies {
  49. implementation(project(":mirai-core"))
  50. runtimeOnly(files("../mirai-core/build/classes/kotlin/jvm/main")) // classpath is not added correctly by IDE
  51. api(group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-javafx", version = "1.3.2")
  52. api(kotlin("stdlib", kotlinVersion))
  53. api(kotlinx("io-jvm", kotlinXIoVersion))
  54. api(kotlinx("io", kotlinXIoVersion))
  55. api(kotlinx("coroutines-io", coroutinesIoVersion))
  56. api(kotlinx("coroutines-core", coroutinesVersion))
  57. api(kotlin("stdlib-jdk7", kotlinVersion))
  58. api(kotlin("stdlib-jdk8", kotlinVersion))
  59. }
  60. tasks.withType<JavaCompile>() {
  61. options.encoding = "UTF-8"
  62. }
  63. tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
  64. kotlinOptions.jvmTarget = "1.8"
  65. }
  66. bintray {
  67. val keyProps = Properties()
  68. val keyFile = file("../keys.properties")
  69. if (keyFile.exists()) keyFile.inputStream().use { keyProps.load(it) }
  70. user = keyProps.getProperty("bintrayUser")
  71. key = keyProps.getProperty("bintrayKey")
  72. setPublications("mavenJava")
  73. setConfigurations("archives")
  74. pkg.apply {
  75. repo = "mirai"
  76. name = "mirai-japt"
  77. setLicenses("AGPLv3")
  78. publicDownloadNumbers = true
  79. vcsUrl = "https://github.com/mamoe/mirai"
  80. }
  81. }
  82. @Suppress("DEPRECATION")
  83. val sourcesJar by tasks.registering(Jar::class) {
  84. classifier = "sources"
  85. from(sourceSets.main.get().allSource)
  86. }
  87. publishing {
  88. /*
  89. repositories {
  90. maven {
  91. // change to point to your repo, e.g. http://my.org/repo
  92. url = uri("$buildDir/repo")
  93. }
  94. }*/
  95. publications {
  96. register("mavenJava", MavenPublication::class) {
  97. from(components["java"])
  98. groupId = rootProject.group.toString()
  99. artifactId = "mirai-japt"
  100. version = mirai_japt_version
  101. pom.withXml {
  102. val root = asNode()
  103. root.appendNode("description", description)
  104. root.appendNode("name", project.name)
  105. root.appendNode("url", "https://github.com/mamoe/mirai")
  106. root.children().last()
  107. }
  108. artifact(sourcesJar.get())
  109. }
  110. }
  111. }