build.gradle 5.5 KB

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