如何在 java 项目中使用 DexGuard Gradle

How to use DexGuard in java project whith Gradle

我正尝试在 Java 项目 Gradle 中使用 DexGuard 插件。这是 android.

的图书馆项目

但我想 link DexGuard 库 whitout:

apply plugin: 'com.android.application'

因为我需要使用:

apply plugin: 'java'

是否可以这样使用DexGuard插件?

我需要这种方式来使用,因为我需要使用额外的插件:

apply plugin: 'com.github.johnrengelman.shadow'

我在将此插件与 android 插件结合使用时遇到问题...

我的gradle:

buildscript {
    repositories { 
        jcenter()
        flatDir dirs: 'DexGuard/lib'
    }
}
    dependencies {
        classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.2'
        classpath ':dexguard'
    }
}

apply plugin: 'java'
apply plugin: 'com.github.johnrengelman.shadow'

repositories {
    mavenCentral()
}

dependencies {
    compile fileTree(dir: 'libs', include: '**/*.jar')
}

sourceSets {
    main {
        java.srcDirs = ['src']
    }
}

shadowJar {
...
}

task sdkDexguard(type: com.saikoa.dexguard.gradle.DexGuardTask) {
    configuration 'dexguard.txt'
    injars  'build/classes'
    injars  'libs'
    outjars 'build/application.apk'
}

我无法构建任务列表。线路任务 sdkDexguard 出错:

Could not find property 'com' on root project

UPD 独立使用的 DexGuard 6.1.11 库中的问题。 GuardSquare 团队很快就会解决这个问题。

问题已在 7.0.31 版本中解决。现在可以将此方法用于独立使用。