mirror of
https://github.com/angryip/ipscan.git
synced 2025-10-26 11:18:17 +00:00
minimize all jars using proguard
This commit is contained in:
parent
7fd6aaf5b1
commit
3889e27cb9
71
build.gradle
71
build.gradle
@ -50,29 +50,6 @@ configurations {
|
||||
|
||||
compileJava.options.annotationProcessorGeneratedSourcesDirectory = new File('build/generated')
|
||||
|
||||
task minimize(type: proguard.gradle.ProGuardTask, dependsOn: 'linux64') {
|
||||
injars "build/libs/ipscan-linux64-${version}.jar"
|
||||
outjars "build/libs/ipscan-linux64-${version}.min.jar"
|
||||
libraryjars '/usr/lib/jvm/java-8-oracle/jre/lib/rt.jar' //System.getProperty('java.home') + "/lib/rt.jar"
|
||||
libraryjars 'lib/jna-win32.jar'
|
||||
dontobfuscate
|
||||
dontoptimize
|
||||
dontnote '**'
|
||||
configuration 'lib/swt.pro'
|
||||
|
||||
def keepClasses = [
|
||||
'net.azib.ipscan.**',
|
||||
'org.savarese.rocksaw.**',
|
||||
]
|
||||
|
||||
for (keepClass in keepClasses) {
|
||||
keep access: 'public', name: keepClass, {
|
||||
method access: 'public'
|
||||
method access: 'private'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def packageTask(def platform, def moreJars, def moreLibs, Closure doMore) {
|
||||
return tasks.create(platform, Jar) {
|
||||
dependsOn = ['classes']
|
||||
@ -85,14 +62,14 @@ def packageTask(def platform, def moreJars, def moreLibs, Closure doMore) {
|
||||
'Version': version,
|
||||
'Build-Date': java.time.LocalDate.now().toString(),
|
||||
'URL': 'https://angryip.org/'
|
||||
}
|
||||
baseName = project.name + '-' + platform
|
||||
from {
|
||||
}
|
||||
baseName = project.name + '-' + platform
|
||||
from {
|
||||
(configurations.compile + files("lib/swt-${platform}.jar") + files(moreJars))
|
||||
.collect { it.isDirectory() ? it : zipTree(it) } +
|
||||
moreLibs
|
||||
}
|
||||
exclude(
|
||||
}
|
||||
exclude(
|
||||
'version.txt',
|
||||
'images/**/*.svg',
|
||||
'chrome.manifest',
|
||||
@ -116,9 +93,41 @@ def packageTask(def platform, def moreJars, def moreLibs, Closure doMore) {
|
||||
// Mac stuff
|
||||
'libswt-awt-*.jnilib',
|
||||
'libswt-xulrunner-*.jnilib'
|
||||
)
|
||||
with jar
|
||||
doLast(doMore)
|
||||
)
|
||||
with jar
|
||||
|
||||
finalizedBy minimizeTask(platform, doMore)
|
||||
}
|
||||
}
|
||||
|
||||
def minimizeTask(def platform, Closure doMore) {
|
||||
return tasks.create("${platform}.min", proguard.gradle.ProGuardTask) {
|
||||
injars "build/libs/ipscan-${platform}-${version}.jar"
|
||||
outjars "build/libs/ipscan-${platform}-${version}.min.jar"
|
||||
libraryjars System.getProperty('java.home') + "/jre/lib/rt.jar" // "jmods/java.base.jmod" after Java 9
|
||||
libraryjars '/usr/lib/jvm/java-8-oracle/jre/lib/rt.jar' // try Ubuntu version of Java 8 if current Java doesn't have rt.jar
|
||||
libraryjars 'lib/jna-win32.jar'
|
||||
dontobfuscate
|
||||
dontoptimize
|
||||
dontnote '**'
|
||||
configuration 'lib/swt.pro'
|
||||
|
||||
def keepClasses = [
|
||||
'net.azib.ipscan.**',
|
||||
'org.savarese.rocksaw.**',
|
||||
]
|
||||
|
||||
for (keepClass in keepClasses) {
|
||||
keep access: 'public', name: keepClass, {
|
||||
method access: 'public'
|
||||
method access: 'private'
|
||||
}
|
||||
}
|
||||
|
||||
doLast {
|
||||
ant.move(file: "build/libs/ipscan-${platform}-${version}.min.jar", tofile: "build/libs/ipscan-${platform}-${version}.jar")
|
||||
doMore()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user