/* * Copyright 2013 huangyuhui * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. */ import java.util.jar.JarOutputStream import java.util.zip.ZipEntry import java.util.zip.ZipFile apply plugin: 'launch4j' apply plugin: 'me.tatarka.retrolambda' if (!hasProperty('mainClass')) { ext.mainClass = 'org.jackhuang.hellominecraft.launcher.Main' } def buildnumber = System.getenv("BUILD_NUMBER") == null ? "" : "."+System.getenv("BUILD_NUMBER") String mavenGroupId = 'HMCL' String mavenVersion = '2.3.4' + buildnumber String bundleName = "Hello Minecraft! Launcher" group = mavenGroupId version = mavenVersion String mavenArtifactId = name buildscript { repositories { mavenCentral(); dependencies { classpath 'net.sf.proguard:proguard-gradle:4.10' classpath 'edu.sc.seis.gradle:launch4j:1.0.6' classpath 'me.tatarka:gradle-retrolambda:3.1.0' } } } configure(install.repositories.mavenInstaller) { pom.project { groupId = mavenGroupId artifactId = mavenArtifactId version = mavenVersion } } dependencies { compile project(":MetroLookAndFeel") compile project(":HMCLAPI") } retrolambda { javaVersion = JavaVersion.VERSION_1_6 } jar { //jar.classifier = 'base' from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } manifest { attributes 'Created-By' : 'Copyright(c) 2013-2014 huangyuhui.', 'Main-Class' : mainClass } } task proguard(type: proguard.gradle.ProGuardTask, dependsOn: jar) { ext { def re = jar.classifier injar = jar.archivePath jar.classifier = '' outjar = jar.archivePath jar.classifier = re } injars injar outjars outjar printmapping "obfuscate_" + version + ".map" configuration 'proguard.pro' } task makeExecutable(dependsOn: jar) << { ext { jar.classifier = '' makeExecutableinjar = jar.archivePath jar.classifier = '' makeExecutableoutjar = jar.archivePath jar.classifier = '' } def loc = new File(project.buildDir, "libs/" + makeExecutableoutjar.getName().substring(0, makeExecutableoutjar.getName().length()-4)+".exe") def fos = new FileOutputStream(loc) def is = new FileInputStream(new File(project.buildDir, '../HMCLauncher.exe')) int read def bytes = new byte[8192] while((read = is.read(bytes)) != -1) fos.write(bytes, 0, read); is.close() is = new FileInputStream(makeExecutableinjar) while((read = is.read(bytes)) != -1) fos.write(bytes, 0, read); is.close() fos.close() } launch4j { launch4jCmd = 'D:\\Develop\\Java\\Launch4j\\launch4j.exe' supportUrl = 'http://www.mcbbs.net/thread-142335-1-1.html' jreMinVersion = '1.6.0' mainClassName = mainClass icon = new File(project.buildDir, '../icon.ico').absolutePath version = mavenVersion + '.0' downloadUrl = 'http://java.com/download' copyright = "Copyright(c) 2013-2015 huangyuhui." jar = new File(project.buildDir, 'libs/' + mavenGroupId + '-' + mavenVersion + '.jar').absolutePath outfile = mavenGroupId + '-' + mavenVersion + '.exe' messagesJreVersionError = 'This application requires a Java Runtime Environment installation, or the runtime is corrupted.\n\u6ca1\u6709\u627e\u5230\u004a\u0061\u0076\u0061\u8fd0\u884c\u65f6\uff0c\u8bf7\u4e0d\u8981\u4f7f\u7528\u7eff\u8272\u004a\u0061\u0076\u0061\uff0c\u8bf7\u4f7f\u7528\u5b89\u88c5\u7248\u7684\u004a\u0061\u0076\u0061\uff0c\u70b9\u51fb\u786e\u5b9a\u8fdb\u5165\u004a\u0061\u0076\u0061\u5b89\u88c5\u9875\u9762\u3002' } processResources { from(sourceSets.main.resources.srcDirs) { exclude 'icon.icns' } } //build.dependsOn proguard //makeExecutable.dependsOn proguard //build.dependsOn makeExecutable