mirror of
https://github.com/skylot/jadx.git
synced 2024-10-07 10:03:27 +00:00
165 lines
3.7 KiB
Groovy
165 lines
3.7 KiB
Groovy
plugins {
|
|
id 'org.sonarqube' version '2.8'
|
|
id 'com.github.ben-manes.versions' version '0.28.0'
|
|
id "com.diffplug.gradle.spotless" version "3.28.1"
|
|
}
|
|
|
|
ext.jadxVersion = System.getenv('JADX_VERSION') ?: "dev"
|
|
version = jadxVersion
|
|
println("jadx version: ${jadxVersion}")
|
|
|
|
allprojects {
|
|
apply plugin: 'java'
|
|
apply plugin: 'jacoco'
|
|
apply plugin: 'checkstyle'
|
|
|
|
version = jadxVersion
|
|
|
|
tasks.withType(JavaCompile) {
|
|
if (!"$it".contains(':jadx-samples:')) {
|
|
options.compilerArgs << '-Xlint' << '-Xlint:unchecked' << '-Xlint:deprecation'
|
|
}
|
|
}
|
|
|
|
compileJava {
|
|
options.encoding = "UTF-8"
|
|
}
|
|
|
|
jar {
|
|
version = jadxVersion
|
|
manifest {
|
|
mainAttributes('jadx-version': jadxVersion)
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
compile 'org.slf4j:slf4j-api:1.7.30'
|
|
compileOnly 'org.jetbrains:annotations:19.0.0'
|
|
|
|
testCompile 'ch.qos.logback:logback-classic:1.2.3'
|
|
testCompile 'org.hamcrest:hamcrest-library:2.2'
|
|
testCompile 'org.mockito:mockito-core:3.3.3'
|
|
testCompile 'org.assertj:assertj-core:3.15.0'
|
|
|
|
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.2'
|
|
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.6.2'
|
|
|
|
testCompile 'org.eclipse.jdt.core.compiler:ecj:4.6.1'
|
|
testCompileOnly 'org.jetbrains:annotations:19.0.0'
|
|
}
|
|
|
|
test {
|
|
useJUnitPlatform()
|
|
}
|
|
|
|
repositories {
|
|
mavenLocal()
|
|
mavenCentral()
|
|
jcenter()
|
|
google()
|
|
}
|
|
|
|
jacoco {
|
|
toolVersion = "0.8.2"
|
|
}
|
|
jacocoTestReport {
|
|
reports {
|
|
xml.enabled = true
|
|
html.enabled = true
|
|
}
|
|
}
|
|
|
|
checkstyleMain {
|
|
// exclude all sources in samples module
|
|
exclude '**/samples/**'
|
|
}
|
|
}
|
|
|
|
sonarqube {
|
|
properties {
|
|
property 'sonar.exclusions', '**/jadx/samples/**/*,**/test-app/**/*'
|
|
property 'sonar.coverage.exclusions', '**/jadx/gui/**/*'
|
|
}
|
|
}
|
|
|
|
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'
|
|
removeUnusedImports()
|
|
|
|
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: Sync, dependsOn: ['jadx-cli:installDist', 'jadx-gui:installDist']) {
|
|
destinationDir file("$buildDir/jadx")
|
|
['jadx-cli', 'jadx-gui'].each {
|
|
from tasks.getByPath(":${it}:installDist").destinationDir
|
|
}
|
|
}
|
|
|
|
task pack(type: Zip, dependsOn: copyArtifacts) {
|
|
destinationDir buildDir
|
|
archiveName "jadx-${jadxVersion}.zip"
|
|
from copyArtifacts.destinationDir
|
|
}
|
|
|
|
task copyExe(type: Copy, dependsOn: 'jadx-gui:createExe') {
|
|
group 'jadx'
|
|
description = 'Copy exe to build dir'
|
|
destinationDir buildDir
|
|
from tasks.getByPath('jadx-gui:createExe').outputs
|
|
include '*.exe'
|
|
}
|
|
|
|
task dist(dependsOn: [pack, copyExe]) {
|
|
group 'jadx'
|
|
description = 'Build jadx distribution zip'
|
|
}
|
|
|
|
task samples(dependsOn: 'jadx-samples:samples') {
|
|
group 'jadx'
|
|
}
|
|
|
|
task cleanBuildDir(type: Delete) {
|
|
group 'jadx'
|
|
delete buildDir
|
|
}
|
|
|
|
test.dependsOn(samples)
|
|
|
|
clean.dependsOn(cleanBuildDir)
|