Added packr config, shrinking final zip from 80MB to 50MB!

This commit is contained in:
Yair Morgenstern
2019-11-26 20:47:31 +02:00
parent 5907d02403
commit 5d59f25532
4 changed files with 162 additions and 16 deletions

View File

@ -49,14 +49,20 @@ for(platform in PackrConfig.Platform.values()) {
def jarFile = "desktop/build/libs/${appName}.jar".toString()
PackrConfig config = new PackrConfig()
config.platform = platform
config.jdk = System.env.'JAVA_HOME' // For Travis
// config.jdk = "C:/Users/LENOVO/Downloads/java-1.8.0-openjdk-1.8.0.232-1.b09.ojdkbuild.windows.x86_64.zip"
// config.jdk = System.env.'JAVA_HOME' // For Travis
config.jdk = "C:/Users/LENOVO/Downloads/java-1.8.0-openjdk-1.8.0.232-1.b09.ojdkbuild.windows.x86_64.zip"
config.executable = "Unciv"
config.classpath = Arrays.asList(jarFile)
config.removePlatformLibs = config.classpath
config.mainClass = project.ext.mainClassName
config.vmArgs = Arrays.asList("Xmx1G")
config.minimizeJre = "hard"
// configuration comprised from 3 sources:
// https://github.com/libgdx/packr/blob/master/src/main/resources/minimize/hard
// https://github.com/libgdx/packr/blob/master/src/main/resources/minimize/oraclejre8
// And Mindustry,
// and added a few touches of my own.
// Down from ~80MB to ~50MB!
config.minimizeJre = "desktop/packrConfig.json"
config.outDir = file("packr")
config.cacheJre=file("packrCache")

View File

@ -1,13 +0,0 @@
rem See https://github.com/libgdx/packr
java -jar packr.jar \
--platform windows64 \
--jdk openjdk-1.7.0-u45-unofficial-icedtea-2.4.3-macosx-x86_64-image.zip \
--executable myapp \
--classpath myapp.jar \
--removelibs myapp.jar \
--mainclass com.my.app.MainClass \
--vmargs Xmx1G \
--resources src/main/resources path/to/other/assets \
--minimizejre soft \
--output out-mac

Binary file not shown.

153
desktop/packrConfig.json Normal file
View File

@ -0,0 +1,153 @@
{
"reduce": [
{
"archive": "jre/lib/rt.jar",
"paths": [
"com/sun/corba",
"com/sun/jmx",
"com/sun/jndi",
"com/sun/media",
"com/sun/naming",
"com/sun/org",
"com/sun/rowset",
"com/sun/script",
"com/sun/xml",
"sun/applet",
"sun/corba",
"sun/management"
]
},
{
"archive": "jre/lib/charsets.jar",
"paths": [
]
},
{
"archive": "jre/lib/jsse.jar",
"paths": [
]
},
{
"archive": "jre/lib/resources.jar",
"paths": [
]
}
],
"remove": [
{
"platform": "*",
"paths": [
"jre/lib/rhino.jar",
"jre/lib/ext",
"jre/bin/rmid",
"jre/bin/rmiregistry",
"jre/bin/tnameserv",
"jre/bin/keytool",
"jre/bin/policytool",
"jre/bin/orbd",
"jre/bin/servertool",
"jre/bin/javaws",
"jre/lib/javaws.jar",
"jre/lib/jfr.jar",
"jre/lib/oblique-fonts",
"jre/lib/desktop",
"jre/plugin",
"jre/THIRDPARTYLICENSEREADME-JAVAFX.txt",
"jre/lib/ant-javafx.jar",
"jre/lib/javafx.properties",
"jre/lib/jfxswt.jar",
"jre/lib/fonts"
]
},
{
"platform": "linux",
"paths": [
"jre/lib/amd64/libawt.so",
"jre/lib/amd64/libawt_xawt.so",
"jre/lib/amd64/libjawt.so",
"jre/lib/amd64/libhprof.so",
"jre/lib/amd64/libdt_socket.so",
"jre/lib/amd64/libsplashscreen.so",
"jre/lib/amd64/libunpack.so",
"jre/lib/amd64/liblcms.so",
"jre/lib/amd64/libnpt.so",
"jre/lib/amd64/libmlib_image.so",
"jre/lib/amd64/libjsig.so",
"jre/lib/amd64/libinstrument.so",
"jre/lib/amd64/libjaas_unix.so",
"jre/lib/amd64/libj2pcsc.so",
"jre/lib/amd64/libsaproc.so",
"jre/lib/amd64/libsunec.so",
"jre/lib/amd64/libj2pkcs11.so",
"jre/lib/amd64/libjsdt.so",
"jre/lib/amd64/libjdwp.so",
"jre/lib/amd64/libjava_crw_demo.so",
"jre/lib/amd64/libfreetype.so",
"jre/lib/amd64/libmanagement.so",
"jre/lib/amd64/libsctp.so",
"jre/lib/amd64/libj2gss.so",
"jre/lib/amd64/libjpeg.so",
"jre/lib/amd64/libfreetype.so.6",
"jre/lib/amd64/libjsoundalsa.so",
"jre/lib/amd64/libjsound.so",
"jre/lib/amd64/libattach.so",
"jre/lib/amd64/libawt_headless.so",
"jre/lib/amd64/libfontmanager.so"
]
},
{
"platform": "windows",
"paths": [
"jre/bin/*.exe",
"jre/bin/client",
"jre/bin/awt.dll",
"jre/bin/jfr.dll",
"jre/bin/java.exe",
"jre/bin/javaw.exe",
"jre/bin/javacpl.exe",
"jre/bin/jucheck.exe",
"jre/bin/dtplugin",
"jre/bin/jabswitch.exe",
"jre/bin/java_crw_demo.dll",
"jre/bin/JavaAccessBridge-32.dll",
"jre/bin/JavaAccessBridge.dll",
"jre/bin/JAWTAccessBridge-32.dll",
"jre/bin/JAWTAccessBridge.dll",
"jre/bin/WindowsAccessBridge-32.dll",
"jre/bin/WindowsAccessBridge.dll",
"jre/bin/wsdetect.dll",
"jre/bin/plugin2",
"jre/bin/deploy.dll",
"jre/bin/javacpl.cpl",
"jre/lib/deploy.jar",
"jre/lib/plugin.jar",
"jre/lib/deploy",
"jre/bin/decora-sse.dll",
"jre/bin/fxplugins.dll",
"jre/bin/glass.dll",
"jre/bin/glib-lite.dll",
"jre/bin/gstreamer-lite.dll",
"jre/bin/javafx-font.dll",
"jre/bin/javafx_font_t2k.dll",
"jre/bin/javafx-iio.dll",
"jre/bin/jfxmedia.dll",
"jre/bin/jfxwebkit.dll",
"jre/bin/prism_common.dll",
"jre/bin/prism-d3d.dll",
"jre/bin/prism_es2.dll",
"jre/bin/prism_sw.dll"
]
}
]
}