build.gradle 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. plugins {
  2. id 'fabric-loom' version '0.5-SNAPSHOT'
  3. id 'com.github.johnrengelman.shadow' version '6.1.0'
  4. id 'maven-publish'
  5. }
  6. sourceCompatibility = JavaVersion.VERSION_1_8
  7. targetCompatibility = JavaVersion.VERSION_1_8
  8. archivesBaseName = project.archives_base_name
  9. version = project.mod_version
  10. group = project.maven_group
  11. repositories {
  12. jcenter()
  13. }
  14. dependencies {
  15. minecraft("com.mojang:minecraft:${project.minecraft_version}")
  16. mappings("net.fabricmc:yarn:${project.yarn_mappings}:v2")
  17. modImplementation("net.fabricmc:fabric-loader:${project.loader_version}")
  18. modApi("me.shedaniel.cloth:config-2:${project.cloth_config_version}") {
  19. exclude(group: "net.fabricmc.fabric-api")
  20. }
  21. // Using modApi because api does not include dependency inside Maven pom file (see https://github.com/FabricMC/fabric-loom/issues/200)
  22. modApi("org.spongepowered:configurate-hocon:${project.configurate_version}")
  23. shadow("org.spongepowered:configurate-hocon:${project.configurate_version}")
  24. compileOnly("org.projectlombok:lombok:${project.lombok_version}")
  25. annotationProcessor("org.projectlombok:lombok:${project.lombok_version}")
  26. }
  27. processResources {
  28. inputs.property "version", project.version
  29. filesMatching("fabric.mod.json") {
  30. expand "version": project.version
  31. }
  32. }
  33. tasks.withType(JavaCompile).configureEach {
  34. // ensure that the encoding is set to UTF-8, no matter what the system default is
  35. // this fixes some edge cases with special characters not displaying correctly
  36. // see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
  37. it.options.encoding = "UTF-8"
  38. }
  39. java {
  40. // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
  41. // if it is present.
  42. withSourcesJar()
  43. }
  44. jar {
  45. from "LICENSE"
  46. }
  47. shadowJar {
  48. configurations = [project.configurations.shadow]
  49. archiveClassifier = "shadow"
  50. }
  51. remapJar {
  52. dependsOn(shadowJar)
  53. input.set(shadowJar.archiveFile)
  54. }
  55. javadoc {
  56. options {
  57. source = "8"
  58. encoding = "UTF-8"
  59. charSet = "UTF-8"
  60. memberLevel = JavadocMemberLevel.PROTECTED
  61. // Disable the crazy super-strict doclint tool in Java 8
  62. addStringOption("Xdoclint:none", "-quiet")
  63. }
  64. source = sourceSets.main.allJava
  65. failOnError false
  66. }
  67. task javadocJar(type: Jar) {
  68. dependsOn javadoc
  69. from javadoc.destinationDir
  70. archiveClassifier = "javadoc"
  71. }
  72. build.dependsOn javadocJar
  73. // configure the maven publication
  74. publishing {
  75. publications {
  76. mavenJava(MavenPublication) {
  77. artifact(remapJar) {
  78. builtBy remapJar
  79. }
  80. artifact(sourcesJar) {
  81. builtBy remapSourcesJar
  82. }
  83. artifact javadocJar
  84. }
  85. }
  86. }