Как ссылаться на двоичный файл системы ProGuard в build.gradle?

Я заметил, что работает gradle assembleRelease вызывает устаревшую версию ProGuard, как видно из вывода оболочки:

$ gradle assembleRelease
Relying on packaging to define the extension of the main artifact has been \
  deprecated and is scheduled to be removed in Gradle 2.0
:Foobar:preBuild UP-TO-DATE
:Foobar:preReleaseBuild UP-TO-DATE
:Foobar:preDebugBuild UP-TO-DATE
:Foobar:prepareComAndroidSupportAppcompatV71900Library UP-TO-DATE
:Foobar:prepareComGoogleAndroidGmsPlayServices3136Library UP-TO-DATE
:Foobar:prepareReleaseDependencies
:Foobar:compileReleaseAidl UP-TO-DATE
:Foobar:compileReleaseRenderscript UP-TO-DATE
:Foobar:generateReleaseBuildConfig UP-TO-DATE
:Foobar:mergeReleaseAssets UP-TO-DATE
:Foobar:mergeReleaseResources UP-TO-DATE
:Foobar:processReleaseManifest UP-TO-DATE
:Foobar:processReleaseResources UP-TO-DATE
:Foobar:generateReleaseSources UP-TO-DATE
:Foobar:compileRelease UP-TO-DATE
:Foobar:proguardRelease
ProGuard, version 4.9
The output seems up to date
:Foobar:dexRelease UP-TO-DATE
:Foobar:processReleaseJavaRes UP-TO-DATE
:Foobar:packageRelease UP-TO-DATE
:Foobar:assembleRelease UP-TO-DATE

BUILD SUCCESSFUL

Total time: 15.703 secs

Я использую следующую конфигурацию в моем build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.6.+'
    }
}

apply plugin: 'android'

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.0"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 19
    }

    buildTypes {
        release {
            runProguard true
            proguardFile 'proguard-project.txt'
        }
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:19.0.0'
    compile 'com.android.support:support-v4:19.0.0'
    compile 'com.google.android.gms:play-services:3.1.36'
}

Как я могу указать Gradle на более новую версию ProGuard, которая может быть доступна с PATHнапример, /usr/local/bin/proguard?

Альтернативное решение - ссылаться на желаемую версию следующим образом:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.6.+'
        classpath 'net.sf.proguard:proguard-gradle:4.10'
    }
}
...

Каковы ваши настройки?

1 ответ

Официальный Proguard Документ показывает, как вы можете указать на Proguard в build.gradle, Смотрите здесь

В соответствии с руководством Proguard вы можете сделать ниже, чтобы указать на двоичный файл Proguard,

buildscript {
    repositories {
        flatDir dirs: '/usr/local/java/proguard/lib'
    }
    dependencies {
        classpath ':proguard'
    }
}

Я думаю, что это может вызвать проблемы с версией Proguard, которая поставляется с Android SDK. Еще не пробовал!!

Другие вопросы по тегам