mirror of
https://github.com/Guardsquare/proguard.git
synced 2026-03-13 09:50:34 +08:00
Add check to verify that minifyEnabled = false configured variants
This commit is contained in:
committed by
maqsood ahmad
parent
5f69246e3a
commit
4d84aa543f
@@ -63,16 +63,18 @@ class AndroidPlugin(private val androidExtension: BaseExtension) : Plugin<Projec
|
||||
}
|
||||
|
||||
when (androidExtension) {
|
||||
is AppExtension -> {
|
||||
androidExtension.applicationVariants.all { applicationVariant ->
|
||||
collectConsumerRulesTask.dependsOn(createCollectConsumerRulesTask(
|
||||
project,
|
||||
applicationVariant,
|
||||
createConsumerRulesConfiguration(project, applicationVariant),
|
||||
File("${project.buildDir}/intermediates/proguard/configs")))
|
||||
}
|
||||
is AppExtension -> androidExtension.applicationVariants.all { applicationVariant ->
|
||||
verifyNotMinified(applicationVariant)
|
||||
|
||||
collectConsumerRulesTask.dependsOn(createCollectConsumerRulesTask(
|
||||
project,
|
||||
applicationVariant,
|
||||
createConsumerRulesConfiguration(project, applicationVariant),
|
||||
File("${project.buildDir}/intermediates/proguard/configs")))
|
||||
}
|
||||
is LibraryExtension -> androidExtension.libraryVariants.all { libraryVariant ->
|
||||
verifyNotMinified(libraryVariant)
|
||||
|
||||
collectConsumerRulesTask.dependsOn(createCollectConsumerRulesTask(
|
||||
project,
|
||||
libraryVariant,
|
||||
@@ -114,6 +116,13 @@ class AndroidPlugin(private val androidExtension: BaseExtension) : Plugin<Projec
|
||||
}
|
||||
}
|
||||
|
||||
private fun verifyNotMinified(variant: BaseVariant) {
|
||||
if (variant.buildType.isMinifyEnabled) {
|
||||
throw GradleException(
|
||||
"The option 'minifyEnabled' is set to 'true' for variant '${variant.name}', but should be 'false' for variants processed by ProGuard")
|
||||
}
|
||||
}
|
||||
|
||||
private fun copyConfigurationAttributes(destConfiguration: Configuration, srcConfiguration: Configuration) {
|
||||
srcConfiguration.attributes.keySet().forEach { attribute ->
|
||||
val attributeValue = srcConfiguration.attributes.getAttribute(attribute)
|
||||
|
||||
@@ -34,8 +34,12 @@ class ConsumerRulesCollectionTest : FreeSpec({
|
||||
compileSdkVersion 30
|
||||
|
||||
buildTypes {
|
||||
release {}
|
||||
debug {}
|
||||
release {
|
||||
minifyEnabled false
|
||||
}
|
||||
debug {
|
||||
minifyEnabled false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -26,6 +26,12 @@ class ConsumerRulesFilterTest : FreeSpec({
|
||||
}
|
||||
android {
|
||||
compileSdkVersion 30
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
proguard {
|
||||
|
||||
@@ -26,6 +26,12 @@ class ConfigurationTest : FreeSpec({
|
||||
}
|
||||
android {
|
||||
compileSdkVersion 30
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
proguard {
|
||||
@@ -45,4 +51,40 @@ class ConfigurationTest : FreeSpec({
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
"Given a project with a configuration for a minified variant" - {
|
||||
val project = autoClose(AndroidProject().apply {
|
||||
addModule(applicationModule("app", buildDotGradle = """
|
||||
plugins {
|
||||
id 'com.android.application'
|
||||
id 'proguard'
|
||||
}
|
||||
android {
|
||||
compileSdkVersion 30
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
proguard {
|
||||
configurations {
|
||||
release {
|
||||
defaultConfiguration 'proguard-android.txt'
|
||||
}
|
||||
}
|
||||
}""".trimIndent()))
|
||||
}.create())
|
||||
|
||||
|
||||
"When the project is evaluated" - {
|
||||
val result = createGradleRunner(project.rootDir, testKitDir).buildAndFail()
|
||||
|
||||
"Then the build should fail with an error message" {
|
||||
result.output shouldContain "The option 'minifyEnabled' is set to 'true' for variant 'release', but should be 'false' for variants processed by ProGuard"
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -30,6 +30,12 @@ class DefaultConfigurationTest : FreeSpec({
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
proguard {
|
||||
|
||||
Reference in New Issue
Block a user