mirror of
https://github.com/skylot/jadx.git
synced 2024-11-27 06:31:15 +00:00
162 lines
3.9 KiB
Groovy
162 lines
3.9 KiB
Groovy
plugins {
|
|
id 'com.github.ben-manes.versions' version '0.39.0'
|
|
id 'com.diffplug.spotless' version '6.1.0'
|
|
}
|
|
|
|
ext.jadxVersion = System.getenv('JADX_VERSION') ?: "dev"
|
|
version = jadxVersion
|
|
println("jadx version: ${jadxVersion}")
|
|
|
|
allprojects {
|
|
apply plugin: 'java'
|
|
apply plugin: 'checkstyle'
|
|
|
|
version = jadxVersion
|
|
|
|
sourceCompatibility = JavaVersion.VERSION_1_8
|
|
targetCompatibility = JavaVersion.VERSION_1_8
|
|
|
|
compileJava {
|
|
options.encoding = "UTF-8"
|
|
}
|
|
|
|
jar {
|
|
manifest {
|
|
mainAttributes('jadx-version': jadxVersion)
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
implementation 'org.slf4j:slf4j-api:1.7.32'
|
|
compileOnly 'org.jetbrains:annotations:23.0.0'
|
|
|
|
testImplementation 'ch.qos.logback:logback-classic:1.2.10'
|
|
testImplementation 'org.hamcrest:hamcrest-library:2.2'
|
|
testImplementation 'org.mockito:mockito-core:4.2.0'
|
|
testImplementation 'org.assertj:assertj-core:3.21.0'
|
|
|
|
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
|
|
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
|
|
|
|
testImplementation 'org.eclipse.jdt.core.compiler:ecj:4.6.1'
|
|
testCompileOnly 'org.jetbrains:annotations:23.0.0'
|
|
}
|
|
|
|
test {
|
|
useJUnitPlatform()
|
|
}
|
|
|
|
repositories {
|
|
mavenLocal()
|
|
mavenCentral()
|
|
google()
|
|
}
|
|
}
|
|
|
|
spotless {
|
|
java {
|
|
target fileTree(rootDir).matching {
|
|
include 'jadx-cli/src/**/java/**/*.java'
|
|
include 'jadx-core/src/**/java/**/*.java'
|
|
include 'jadx-gui/src/**/java/**/*.java'
|
|
include 'jadx-plugins/**/java/**/*.java'
|
|
}
|
|
|
|
importOrderFile 'config/code-formatter/eclipse.importorder'
|
|
eclipse().configFile 'config/code-formatter/eclipse.xml'
|
|
if (JavaVersion.current() < JavaVersion.VERSION_16) {
|
|
removeUnusedImports()
|
|
} else {
|
|
// google-format broken on java 16 (https://github.com/diffplug/spotless/issues/834)
|
|
println('Warning! Unused imports remove is disabled for Java 16')
|
|
}
|
|
|
|
lineEndings(com.diffplug.spotless.LineEnding.UNIX)
|
|
encoding("UTF-8")
|
|
trimTrailingWhitespace()
|
|
endWithNewline()
|
|
}
|
|
format 'misc', {
|
|
target '**/*.gradle', '**/*.md', '**/*.xml', '**/.gitignore', '**/.properties'
|
|
targetExclude ".gradle/**", ".idea/**", "*/build/**"
|
|
|
|
lineEndings(com.diffplug.spotless.LineEnding.UNIX)
|
|
encoding("UTF-8")
|
|
trimTrailingWhitespace()
|
|
endWithNewline()
|
|
}
|
|
}
|
|
|
|
dependencyUpdates {
|
|
resolutionStrategy {
|
|
componentSelection { rules ->
|
|
rules.all { ComponentSelection selection ->
|
|
boolean rejected = ['alpha', 'beta', 'rc', 'cr', 'm', 'atlassian'].any { qualifier ->
|
|
selection.candidate.version ==~ /(?i).*[.-]${qualifier}[.\d-]*/
|
|
}
|
|
if (rejected) {
|
|
selection.reject('Release candidate')
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
task copyArtifacts(type: Copy) {
|
|
from tasks.getByPath(":jadx-cli:installDist")
|
|
from tasks.getByPath(":jadx-gui:installDist")
|
|
into layout.buildDirectory.dir("jadx")
|
|
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
|
}
|
|
|
|
task pack(type: Zip) {
|
|
from copyArtifacts
|
|
archiveFileName = "jadx-${jadxVersion}.zip"
|
|
destinationDirectory = layout.buildDirectory
|
|
}
|
|
|
|
task copyExe(type: Copy) {
|
|
group 'jadx'
|
|
description = 'Copy exe to build dir'
|
|
mustRunAfter pack // not needed, but gradle throws warning because of same output dir
|
|
|
|
from tasks.getByPath('jadx-gui:createExe')
|
|
include '*.exe'
|
|
into layout.buildDirectory
|
|
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
|
}
|
|
|
|
task distWinBundle(type: Copy, dependsOn: 'jadx-gui:distWinWithJre') {
|
|
group 'jadx'
|
|
description = 'Copy bundle to build dir'
|
|
destinationDir buildDir
|
|
from(tasks.getByPath('jadx-gui:distWinWithJre').outputs) {
|
|
include '*.zip'
|
|
}
|
|
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
|
}
|
|
|
|
task dist {
|
|
group 'jadx'
|
|
description = 'Build jadx distribution zip'
|
|
|
|
dependsOn(pack)
|
|
|
|
OperatingSystem os = org.gradle.nativeplatform.platform.internal.DefaultNativePlatform.currentOperatingSystem;
|
|
if (os.isWindows()) {
|
|
if (project.hasProperty("bundleJRE")) {
|
|
println("Build win bundle with JRE")
|
|
dependsOn('distWinBundle')
|
|
} else {
|
|
dependsOn('copyExe')
|
|
}
|
|
}
|
|
}
|
|
|
|
task cleanBuildDir(type: Delete) {
|
|
group 'jadx'
|
|
delete buildDir
|
|
}
|
|
|
|
clean.dependsOn(cleanBuildDir)
|