diff --git a/build.gradle b/build.gradle index c3fe4271f..847a61b06 100644 --- a/build.gradle +++ b/build.gradle @@ -107,8 +107,22 @@ allprojects { } task copyArtifacts(type: Copy) { - from tasks.getByPath(":jadx-cli:installDist") - from tasks.getByPath(":jadx-gui:installDist") + from(tasks.getByPath(":jadx-cli:installShadowDist")) { + exclude '**/*.jar' + filter { line -> + line.replaceAll('jadx-cli-(.*)-all.jar', 'jadx-$1-all.jar') + .replace('-jar "\\"$CLASSPATH\\""', '-cp "\\"$CLASSPATH\\"" jadx.cli.JadxCLI') + .replace('-jar "%CLASSPATH%"', '-cp "%CLASSPATH%" jadx.cli.JadxCLI') + } + } + from(tasks.getByPath(":jadx-gui:installShadowDist")) { + exclude '**/*.jar' + filter { line -> line.replaceAll('jadx-gui-(.*)-all.jar', 'jadx-$1-all.jar') } + } + from(tasks.getByPath(":jadx-gui:installShadowDist")) { + include '**/*.jar' + rename 'jadx-gui-(.*)-all.jar', 'jadx-$1-all.jar' + } into layout.buildDirectory.dir("jadx") duplicatesStrategy = DuplicatesStrategy.EXCLUDE } diff --git a/jadx-cli/build.gradle b/jadx-cli/build.gradle index 4bd54e7e7..9ddf18932 100644 --- a/jadx-cli/build.gradle +++ b/jadx-cli/build.gradle @@ -1,5 +1,8 @@ plugins { id 'application' + + // use shadow only for application scripts, jar will be copied from jadx-gui + id 'com.github.johnrengelman.shadow' version '8.1.1' } dependencies { @@ -22,6 +25,13 @@ application { mainClass.set('jadx.cli.JadxCLI') applicationDefaultJvmArgs = ['-Xms128M', '-XX:MaxRAMPercentage=70.0', '-XX:+UseG1GC'] } +shadow { + mainClassName = application.mainClass.get() +} +shadowJar { + // shadow jar not needed + configurations = [] +} applicationDistribution.with { into('') { diff --git a/jadx-cli/src/main/java/jadx/cli/JCommanderWrapper.java b/jadx-cli/src/main/java/jadx/cli/JCommanderWrapper.java index 41cb2f70e..6194c2dde 100644 --- a/jadx-cli/src/main/java/jadx/cli/JCommanderWrapper.java +++ b/jadx-cli/src/main/java/jadx/cli/JCommanderWrapper.java @@ -74,6 +74,8 @@ public class JCommanderWrapper { } public void printUsage() { + LogHelper.setLogLevel(LogHelper.LogLevelEnum.ERROR); // mute logger while printing help + // print usage in not sorted fields order (by default sorted by description) PrintStream out = System.out; out.println(); diff --git a/jadx-cli/src/main/java/jadx/cli/LogHelper.java b/jadx-cli/src/main/java/jadx/cli/LogHelper.java index 44afa170f..8cf47ef5c 100644 --- a/jadx-cli/src/main/java/jadx/cli/LogHelper.java +++ b/jadx-cli/src/main/java/jadx/cli/LogHelper.java @@ -51,6 +51,11 @@ public class LogHelper { return args.logLevel; } + public static void setLogLevel(LogLevelEnum newLogLevel) { + logLevelValue = newLogLevel; + applyLogLevel(logLevelValue); + } + public static void setLogLevelsForLoadingStage() { if (logLevelValue == null) { return;