launch4j
This commit is contained in:
Binary file not shown.
@@ -1,11 +1,14 @@
|
|||||||
import org.apache.tools.ant.filters.ReplaceTokens
|
import org.apache.tools.ant.filters.ReplaceTokens
|
||||||
import proguard.gradle.ProGuardTask
|
|
||||||
|
|
||||||
import java.security.MessageDigest
|
import java.security.MessageDigest
|
||||||
import java.util.jar.JarFile
|
import java.util.jar.JarFile
|
||||||
import java.util.jar.Pack200
|
import java.util.jar.Pack200
|
||||||
import java.util.zip.GZIPOutputStream
|
import java.util.zip.GZIPOutputStream
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
id "edu.sc.seis.launch4j" version "2.4.4"
|
||||||
|
}
|
||||||
|
|
||||||
if (!hasProperty('mainClass')) {
|
if (!hasProperty('mainClass')) {
|
||||||
ext.mainClass = 'org.jackhuang.hmcl.Main'
|
ext.mainClass = 'org.jackhuang.hmcl.Main'
|
||||||
}
|
}
|
||||||
@@ -54,11 +57,6 @@ jar {
|
|||||||
}
|
}
|
||||||
|
|
||||||
doLast {
|
doLast {
|
||||||
//new File("build/signed").mkdirs()
|
|
||||||
//ant.signjar(signedjar: archivePath, jar: archivePath,
|
|
||||||
// keystore: "HMCL.keystore", storepass: "123456",
|
|
||||||
// alias: "HMCL")
|
|
||||||
|
|
||||||
def messageDigest = MessageDigest.getInstance("SHA1")
|
def messageDigest = MessageDigest.getInstance("SHA1")
|
||||||
archivePath.eachByte 1024 * 1024, { byte[] buf, int bytesRead ->
|
archivePath.eachByte 1024 * 1024, { byte[] buf, int bytesRead ->
|
||||||
messageDigest.update(buf, 0, bytesRead)
|
messageDigest.update(buf, 0, bytesRead)
|
||||||
@@ -76,30 +74,6 @@ processResources {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
task makeExecutable(dependsOn: jar) doLast {
|
|
||||||
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(makeExecutableoutjar)
|
|
||||||
while((read = is.read(bytes)) != -1)
|
|
||||||
fos.write(bytes, 0, read)
|
|
||||||
is.close()
|
|
||||||
fos.close()
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
task makePackGZ(dependsOn: jar) doLast {
|
task makePackGZ(dependsOn: jar) doLast {
|
||||||
ext {
|
ext {
|
||||||
jar.classifier = ''
|
jar.classifier = ''
|
||||||
@@ -123,41 +97,21 @@ task makePackGZ(dependsOn: jar) doLast {
|
|||||||
fileEx.append sha1Hex
|
fileEx.append sha1Hex
|
||||||
}
|
}
|
||||||
|
|
||||||
task proguard(type: ProGuardTask, dependsOn: jar) {
|
launch4j {
|
||||||
ext {
|
mainClassName = mainClass
|
||||||
def re = jar.classifier
|
icon = "${projectDir}/icon.ico"
|
||||||
injar = jar.archivePath
|
|
||||||
jar.classifier = 'optimized'
|
|
||||||
outjar = jar.archivePath
|
|
||||||
jar.classifier = re
|
|
||||||
}
|
|
||||||
|
|
||||||
injars(/*["filter": "!META-INF/**,**"], */injar)
|
jvmOptions = ["-XX:MinHeapFreeRatio=5", "-XX:MaxHeapFreeRatio=15"]
|
||||||
String javaHome = System.getProperty("java.home")
|
|
||||||
if (!javaHome.endsWith("jre"))
|
|
||||||
javaHome += File.separator + "jre"
|
|
||||||
libraryjars javaHome + "/lib/rt.jar"
|
|
||||||
libraryjars javaHome + "/lib/jce.jar"
|
|
||||||
libraryjars javaHome + "/lib/jsse.jar"
|
|
||||||
libraryjars javaHome + "/lib/ext/jfxrt.jar"
|
|
||||||
outjars outjar
|
|
||||||
|
|
||||||
configuration 'proguard.pro'
|
version = mavenVersion
|
||||||
|
productName = "HMCL"
|
||||||
|
internalName = "HMCL-${mavenVersion}"
|
||||||
|
outfile = "HMCL-${mavenVersion}.exe"
|
||||||
|
|
||||||
|
outputDir = "libs"
|
||||||
|
|
||||||
|
copyright = "Copyright (C) 2018 huangyuhui <hmcl@huangyuhui.net>"
|
||||||
}
|
}
|
||||||
|
|
||||||
task combineMETA_INF(type: Jar) {
|
|
||||||
ext {
|
|
||||||
def re = jar.classifier
|
|
||||||
injar = jar.archivePath
|
|
||||||
jar.classifier = 'optimized'
|
|
||||||
outjar = jar.archivePath
|
|
||||||
jar.classifier = re
|
|
||||||
}
|
|
||||||
from zipTree(outjar)
|
|
||||||
from zipTree(injar).matching {
|
|
||||||
include "META-INF/"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
build.dependsOn makeExecutable
|
|
||||||
build.dependsOn makePackGZ
|
build.dependsOn makePackGZ
|
||||||
|
build.dependsOn createExe
|
||||||
15
HMCL/proguard.pro
vendored
15
HMCL/proguard.pro
vendored
@@ -1,15 +0,0 @@
|
|||||||
-target 1.8
|
|
||||||
-dontoptimize
|
|
||||||
-dontobfuscate
|
|
||||||
|
|
||||||
# JFoenix
|
|
||||||
-keep class com.jfoenix.** {
|
|
||||||
<fields>;
|
|
||||||
<methods>;
|
|
||||||
}
|
|
||||||
|
|
||||||
# HMCL
|
|
||||||
-keep class org.jackhuang.** {
|
|
||||||
<fields>;
|
|
||||||
<methods>;
|
|
||||||
}
|
|
||||||
@@ -19,15 +19,6 @@
|
|||||||
group 'org.jackhuang'
|
group 'org.jackhuang'
|
||||||
version '3.0'
|
version '3.0'
|
||||||
|
|
||||||
buildscript {
|
|
||||||
repositories {
|
|
||||||
mavenCentral()
|
|
||||||
}
|
|
||||||
dependencies {
|
|
||||||
classpath 'net.sf.proguard:proguard-gradle:5.3.3'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user