Advertisement
djoveryde

build.gradle

Sep 4th, 2017
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.19 KB | None | 0 0
  1. buildscript {
  2. repositories {
  3. mavenCentral()
  4. maven {
  5. name = "forge"
  6. url = "http://files.minecraftforge.net/maven/"
  7. }
  8. maven {
  9. name = "sonatype"
  10. url = "https://oss.sonatype.org/content/repositories/snapshots/"
  11. }
  12. }
  13. dependencies {
  14. classpath 'net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT'
  15. //files('SForgeGradle-2.2-SNAPSHOT.jar')
  16. //'net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT'
  17. //classpath files('FG.jar')
  18. }
  19. }
  20.  
  21. apply plugin: 'java'
  22. apply plugin: 'net.minecraftforge.gradle.patcher'
  23. apply plugin: 'net.minecraftforge.gradle.launch4j'
  24. apply plugin: 'maven'
  25.  
  26. group = 'djoveryde.phoenix'
  27. version = '0.0.1'
  28.  
  29. //afterEvaluate {
  30. // patchPhoenixJar.addInject file('bukkit/src/main/java/')
  31. //}
  32.  
  33. //tasks.whenTaskAdded { task ->
  34. // if(task.name.equals("genPhoenixPatches")) {
  35. // task.addOriginalSource file('bukkit/src/main/java/')
  36. // }
  37. //}
  38.  
  39. dependencies {
  40. compile 'org.apache.commons:commons-lang3:3.5'
  41. compile 'org.avaje:ebean:2.8.1'
  42. compile 'com.googlecode.json-simple:json-simple:1.1'
  43. compile 'org.yaml:snakeyaml:1.15'
  44. compile 'com.google.guava:guava:21.0'
  45. }
  46.  
  47. tasks.withType(JavaCompile) {
  48. options.encoding = 'UTF-8'
  49. }
  50.  
  51. minecraft {
  52. version = "1.11.2"
  53. mappings = 'snapshot_nodoc_20170612'
  54. workspaceDir = "projects"
  55. versionJson = "jsons/1.11.2-dev.json"
  56. buildUserdev = true
  57. buildInstaller = true
  58. installerVersion = '1.5'
  59.  
  60. def common = {
  61. patchPrefixOriginal "../src-base/minecraft"
  62. patchPrefixChanged "../src-work/minecraft"
  63. mainClassClient "net.minecraft.launchwrapper.Launch"
  64. tweakClassClient "net.minecraftforge.fml.common.launcher.FMLTweaker"
  65. mainClassServer "net.minecraft.launchwrapper.Launch"
  66. tweakClassServer "net.minecraftforge.fml.common.launcher.FMLServerTweaker"
  67. }
  68.  
  69. projects {
  70. forge {
  71. rootDir "forge/"
  72. patchDir "forge/patches/minecraft/"
  73. patchAfter "clean"
  74. genPatchesFrom "clean"
  75. genMcpPatches = false
  76. applyMcpPatches = false
  77. s2sKeepImports = true
  78. //dchImports = true
  79. //ignoreWhiteSpaces = false
  80. with common
  81. }
  82.  
  83. phoenix {
  84. rootDir "."
  85. patchDir "patches/"
  86. patchAfter "forge"
  87. genPatchesFrom "forge"
  88. genMcpPatches = true
  89. applyMcpPatches = true
  90. s2sKeepImports = true
  91. //dchImports = true
  92. //ignoreWhiteSpaces = false
  93. with common
  94. }
  95. }
  96. }
  97.  
  98. installer {
  99. classifier = 'installer'
  100. from "forge/src/main/resources/forge_logo.png"
  101. rename "forge_logo\\.png", "big_logo.png"
  102. }
  103.  
  104. launch4j {
  105. jar = installer.archivePath.canonicalPath
  106. outfile = file("build/distributions/${project.name}-${project.version}-installer-win.exe").canonicalPath
  107. icon = file('icon.ico').canonicalPath
  108. manifest = file('l4jManifest.xml').canonicalPath
  109. jreMinVersion = '1.8.0'
  110. initialHeapPercent = 5;
  111. maxHeapPercent = 100;
  112. }
  113. tasks.generateXmlConfig.dependsOn installer
  114. tasks.build.dependsOn 'launch4j'
  115. tasks.compileJava.enabled = false
  116.  
  117. task signUniversal(type: SignJar, dependsOn: 'outputJar') {
  118. onlyIf {
  119. project.hasProperty('jarsigner')
  120. }
  121.  
  122. def jarsigner = [:];
  123.  
  124. if (project.hasProperty('jarsigner'))
  125. jarsigner = project.jarsigner;
  126.  
  127. alias = 'forge'
  128. exclude "paulscode/**"
  129. storePass = jarsigner.storepass
  130. keyPass = jarsigner.keypass
  131. keyStore = jarsigner.keystore
  132. inputFile = outputJar.archivePath
  133. outputFile = outputJar.archivePath
  134. }
  135. build.dependsOn signUniversal
  136. installer.dependsOn signUniversal
  137.  
  138. outputJar {
  139. classifier = 'universal'
  140.  
  141. manifest.attributes([
  142. "Main-Class": "net.minecraftforge.fml.relauncher.ServerLaunchWrapper",
  143. "TweakClass": "net.minecraftforge.fml.common.launcher.FMLTweaker",
  144. "Class-Path": getServerClasspath(file("jsons/1.11.2-rel.json"))
  145. ])
  146. }
  147.  
  148. processJson {
  149. releaseJson = "jsons/1.11.2-rel.json"
  150. addReplacements([
  151. "@minecraft_version@": project.minecraft.version,
  152. "@version@": project.version,
  153. "@project@": "phoenix",
  154. "@artifact@": "djoveryde:phoenix:${project.version}",
  155. "@universal_jar@": { outputJar.archiveName },
  156. "@timestamp@": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"),
  157. ])
  158. }
  159.  
  160. extractForgeSources {
  161. exclude "**/SideOnly.java", "**/Side.java"
  162. }
  163.  
  164. genGradleProjects {
  165. addCompileDep "junit:junit:4.12"
  166. }
  167.  
  168. import groovy.json.JsonSlurper;
  169.  
  170. String getServerClasspath(File file) {
  171. def node = new JsonSlurper().parse(file);
  172. def out = new StringBuilder()
  173. node.versionInfo.libraries.each { lib ->
  174. if (lib.serverreq)
  175. {
  176. // group : artifact : version
  177. def split = lib.name.split(':')
  178. def group = split[0].replace('.', '/')
  179. def artifact = split[1]
  180. def version = split[2]
  181. out += "libraries/$group/$artifact/$version/$artifact-${version}.jar "
  182. }
  183. }
  184. out += "minecraft_server.${minecraft.version}.jar"
  185. return out.toString();
  186. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement