build.gradle 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. import net.fabricmc.loom.task.RemapJarTask
  2. import java.text.SimpleDateFormat
  3. plugins {
  4. id 'fabric-loom' version '0.2.6-SNAPSHOT'
  5. id 'maven-publish'
  6. id 'net.minecrell.licenser' version '0.4.1'
  7. id 'com.matthewprenger.cursegradle' version '1.4.0'
  8. }
  9. sourceCompatibility = targetCompatibility = 1.8
  10. archivesBaseName = "RoughlyEnoughItems"
  11. group = "me.shedaniel"
  12. def forceVersion = ""
  13. version = forceVersion != "" ? forceVersion : ((project.mod_version as String).contains("unstable") ? (project.mod_version + "." + buildTime()) : project.mod_version)
  14. def includeDep = true
  15. minecraft {
  16. }
  17. static def buildTime() {
  18. def df = new SimpleDateFormat("yyyyMMddHHmm")
  19. df.setTimeZone(TimeZone.getTimeZone("UTC"))
  20. return df.format(new Date())
  21. }
  22. license {
  23. header rootProject.file('HEADER')
  24. include '**/*.java'
  25. }
  26. repositories {
  27. }
  28. jar {
  29. from "LICENSE"
  30. }
  31. processResources {
  32. filesMatching('fabric.mod.json') {
  33. expand 'version': project.version
  34. }
  35. inputs.property "version", project.version
  36. }
  37. dependencies {
  38. minecraft("com.mojang:minecraft:${project.minecraft_version}")
  39. mappings("net.fabricmc:yarn:${project.yarn_version}:v2")
  40. modApi("net.fabricmc:fabric-loader:${project.fabricloader_version}")
  41. modApi("net.fabricmc.fabric-api:fabric-api:${project.fabric_api}")
  42. modApi("me.shedaniel.cloth:cloth-events:${cloth_events_version}") {
  43. transitive = false
  44. }
  45. modImplementation("me.shedaniel.cloth:config-2:${cloth_config_version}") {
  46. exclude module: "fabric-api"
  47. }
  48. modApi("me.sargunvohra.mcmods:autoconfig1u:${project.autoconfig1u}") {
  49. exclude module: "fabric-api"
  50. }
  51. modApi("org.jetbrains:annotations:18.0.0")
  52. modCompileOnly("io.github.prospector:modmenu:${modmenu_version}") {
  53. transitive = false
  54. }
  55. modRuntime("io.github.prospector:modmenu:${modmenu_version}") {
  56. transitive = false
  57. }
  58. if (includeDep) {
  59. afterEvaluate {
  60. def listAdded = new ArrayList(Arrays.asList((api_exculde as String).split(',')))
  61. def eachDep = { dep ->
  62. for (apiIncludeDepStr in (api_include as String).split(',')) {
  63. def apiIncludeGroup = apiIncludeDepStr.split(':')[0]
  64. def apiIncludeDep = apiIncludeDepStr.split(':')[1]
  65. if (dep.module.id.group == apiIncludeGroup && dep.module.id.name.startsWith(apiIncludeDep)) {
  66. def version = dep.module.id.version.indexOf('@') >= 0 ? dep.module.id.version.substring(0, dep.module.id.version.indexOf('@')) : dep.module.id.version
  67. def mavenDep = "${dep.module.id.group}:${dep.module.id.name}:$version"
  68. if (!(mavenDep in listAdded)) {
  69. include(mavenDep) {
  70. transitive = false
  71. }
  72. listAdded.add(mavenDep)
  73. }
  74. break
  75. }
  76. }
  77. }
  78. configurations.compile.resolvedConfiguration.firstLevelModuleDependencies.each eachDep
  79. configurations.runtimeClasspath.resolvedConfiguration.firstLevelModuleDependencies.each eachDep
  80. }
  81. }
  82. }
  83. task sourcesJar(type: Jar, dependsOn: classes) {
  84. classifier = "sources"
  85. from sourceSets.main.allSource
  86. }
  87. task remapMavenJar(type: RemapJarTask, dependsOn: jar) {
  88. // classifier = "maven"
  89. afterEvaluate {
  90. //noinspection GroovyAccessibility
  91. input = file("${project.buildDir}/libs/${archivesBaseName}-${version}-dev.jar")
  92. archiveName = "${archivesBaseName}-${version}.jar"
  93. //noinspection GroovyAccessibility
  94. addNestedDependencies = false
  95. }
  96. }
  97. curseforge {
  98. if (project.hasProperty('danielshe_curse_api_key') || System.getenv('danielshe_curse_api_key') != null) {
  99. apiKey = project.hasProperty('danielshe_curse_api_key') ? project.property('danielshe_curse_api_key') : System.getenv('danielshe_curse_api_key')
  100. project {
  101. id = '310111'
  102. releaseType = 'beta'
  103. changelogType = "html"
  104. def df = new SimpleDateFormat("yyyy-MM-dd HH:mm")
  105. df.setTimeZone(TimeZone.getTimeZone("UTC"))
  106. def time = df.format(new Date())
  107. changelog = "<h2>REI v$project.version</h2>Updated at <b>$time</b>.<br><a href=\"https://gist.github.com/shedaniel/b7593e692319976f3349263208792922\">Click here for full changelog</a>"
  108. addGameVersion '1.16-Snapshot'
  109. addGameVersion 'Java 8'
  110. addGameVersion 'Fabric'
  111. relations {
  112. requiredDependency 'fabric-api'
  113. embeddedLibrary 'cloth'
  114. embeddedLibrary 'cloth-config'
  115. }
  116. mainArtifact(file("${project.buildDir}/libs/${project.archivesBaseName}-${project.version}.jar")) {
  117. displayName = "[Fabric 20w09a] v$project.version"
  118. }
  119. afterEvaluate {
  120. uploadTask.dependsOn("remapJar")
  121. }
  122. }
  123. }
  124. options {
  125. forgeGradleIntegration = false
  126. javaVersionAutoDetect = false
  127. }
  128. }
  129. publishing {
  130. publications {
  131. mavenJava(MavenPublication) {
  132. artifact(file("${project.buildDir}/libs/$archivesBaseName-${version}.jar")) {
  133. builtBy remapMavenJar
  134. }
  135. artifact(sourcesJar) {
  136. builtBy remapSourcesJar
  137. }
  138. }
  139. }
  140. repositories {
  141. if (project.hasProperty('danielshe_pass')) {
  142. maven {
  143. url = "http://deploy.modmuss50.me/"
  144. credentials {
  145. username = "danielshe"
  146. password = project.getProperty('danielshe_pass')
  147. }
  148. }
  149. }
  150. }
  151. }