Avoid gradle build params for clean task












0















I configured my app level build.gradle file to pick the apk name from build parameters.



Below is my build.gradle file



apply plugin: 'com.android.application'
android {
compileSdkVersion 26
defaultConfig {
applicationId "com.somethind"
minSdkVersion 16
targetSdkVersion 25
....
}

applicationVariants.all { variant ->
changeAPKName(variant, project.apkName)
}

buildTypes {
......
......
}
repositories {
flatDir {
dirs 'libs'
}
}
}

def changeAPKName(variant, apkName) {
variant.outputs.all { output ->
outputFileName = new File(apkName)
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])

........
}


Now I can issue below command to build the apk with custom name



gradlew assembleDebug -PapkName=sample.apk


But the issue is if I have to clean the apk I have to pass the build params to the clean command



Below command is failing



gradlew clean


Below command is working fine



gradlew clean -PapkName="somename.apk" //Its passing


How can I avoid passing build params to clean task










share|improve this question





























    0















    I configured my app level build.gradle file to pick the apk name from build parameters.



    Below is my build.gradle file



    apply plugin: 'com.android.application'
    android {
    compileSdkVersion 26
    defaultConfig {
    applicationId "com.somethind"
    minSdkVersion 16
    targetSdkVersion 25
    ....
    }

    applicationVariants.all { variant ->
    changeAPKName(variant, project.apkName)
    }

    buildTypes {
    ......
    ......
    }
    repositories {
    flatDir {
    dirs 'libs'
    }
    }
    }

    def changeAPKName(variant, apkName) {
    variant.outputs.all { output ->
    outputFileName = new File(apkName)
    }
    }

    dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    ........
    }


    Now I can issue below command to build the apk with custom name



    gradlew assembleDebug -PapkName=sample.apk


    But the issue is if I have to clean the apk I have to pass the build params to the clean command



    Below command is failing



    gradlew clean


    Below command is working fine



    gradlew clean -PapkName="somename.apk" //Its passing


    How can I avoid passing build params to clean task










    share|improve this question



























      0












      0








      0








      I configured my app level build.gradle file to pick the apk name from build parameters.



      Below is my build.gradle file



      apply plugin: 'com.android.application'
      android {
      compileSdkVersion 26
      defaultConfig {
      applicationId "com.somethind"
      minSdkVersion 16
      targetSdkVersion 25
      ....
      }

      applicationVariants.all { variant ->
      changeAPKName(variant, project.apkName)
      }

      buildTypes {
      ......
      ......
      }
      repositories {
      flatDir {
      dirs 'libs'
      }
      }
      }

      def changeAPKName(variant, apkName) {
      variant.outputs.all { output ->
      outputFileName = new File(apkName)
      }
      }

      dependencies {
      compile fileTree(dir: 'libs', include: ['*.jar'])

      ........
      }


      Now I can issue below command to build the apk with custom name



      gradlew assembleDebug -PapkName=sample.apk


      But the issue is if I have to clean the apk I have to pass the build params to the clean command



      Below command is failing



      gradlew clean


      Below command is working fine



      gradlew clean -PapkName="somename.apk" //Its passing


      How can I avoid passing build params to clean task










      share|improve this question
















      I configured my app level build.gradle file to pick the apk name from build parameters.



      Below is my build.gradle file



      apply plugin: 'com.android.application'
      android {
      compileSdkVersion 26
      defaultConfig {
      applicationId "com.somethind"
      minSdkVersion 16
      targetSdkVersion 25
      ....
      }

      applicationVariants.all { variant ->
      changeAPKName(variant, project.apkName)
      }

      buildTypes {
      ......
      ......
      }
      repositories {
      flatDir {
      dirs 'libs'
      }
      }
      }

      def changeAPKName(variant, apkName) {
      variant.outputs.all { output ->
      outputFileName = new File(apkName)
      }
      }

      dependencies {
      compile fileTree(dir: 'libs', include: ['*.jar'])

      ........
      }


      Now I can issue below command to build the apk with custom name



      gradlew assembleDebug -PapkName=sample.apk


      But the issue is if I have to clean the apk I have to pass the build params to the clean command



      Below command is failing



      gradlew clean


      Below command is working fine



      gradlew clean -PapkName="somename.apk" //Its passing


      How can I avoid passing build params to clean task







      android android-studio gradle android-gradle build.gradle






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 21 '18 at 10:50









      Fantômas

      32.8k156490




      32.8k156490










      asked Nov 21 '18 at 9:22









      ChandrakanthChandrakanth

      2,8772927




      2,8772927
























          1 Answer
          1






          active

          oldest

          votes


















          0














          The problem here is we need to provide some default value to project.apkName. So when we didn't pass apkName param from command line, it will take default value. It can be done like below



          apply plugin: 'com.android.application'
          android {
          compileSdkVersion 26
          defaultConfig {
          applicationId "com.somethind"
          minSdkVersion 16
          targetSdkVersion 25
          ....
          }

          def defaultApkName = "Pervacio_ssd.apk"
          applicationVariants.all { variant ->
          if(project.hasProperty("apkName")){
          defaultApkName = apkName;
          }
          changeAPKName(variant, defaultApkName)
          }

          buildTypes {
          ......
          ......
          }
          repositories {
          flatDir {
          dirs 'libs'
          }
          }
          }

          def changeAPKName(variant, apkName) {
          variant.outputs.all { output ->
          outputFileName = new File(apkName)
          }
          }

          dependencies {
          compile fileTree(dir: 'libs', include: ['*.jar'])

          ........
          }





          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53408808%2favoid-gradle-build-params-for-clean-task%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            The problem here is we need to provide some default value to project.apkName. So when we didn't pass apkName param from command line, it will take default value. It can be done like below



            apply plugin: 'com.android.application'
            android {
            compileSdkVersion 26
            defaultConfig {
            applicationId "com.somethind"
            minSdkVersion 16
            targetSdkVersion 25
            ....
            }

            def defaultApkName = "Pervacio_ssd.apk"
            applicationVariants.all { variant ->
            if(project.hasProperty("apkName")){
            defaultApkName = apkName;
            }
            changeAPKName(variant, defaultApkName)
            }

            buildTypes {
            ......
            ......
            }
            repositories {
            flatDir {
            dirs 'libs'
            }
            }
            }

            def changeAPKName(variant, apkName) {
            variant.outputs.all { output ->
            outputFileName = new File(apkName)
            }
            }

            dependencies {
            compile fileTree(dir: 'libs', include: ['*.jar'])

            ........
            }





            share|improve this answer




























              0














              The problem here is we need to provide some default value to project.apkName. So when we didn't pass apkName param from command line, it will take default value. It can be done like below



              apply plugin: 'com.android.application'
              android {
              compileSdkVersion 26
              defaultConfig {
              applicationId "com.somethind"
              minSdkVersion 16
              targetSdkVersion 25
              ....
              }

              def defaultApkName = "Pervacio_ssd.apk"
              applicationVariants.all { variant ->
              if(project.hasProperty("apkName")){
              defaultApkName = apkName;
              }
              changeAPKName(variant, defaultApkName)
              }

              buildTypes {
              ......
              ......
              }
              repositories {
              flatDir {
              dirs 'libs'
              }
              }
              }

              def changeAPKName(variant, apkName) {
              variant.outputs.all { output ->
              outputFileName = new File(apkName)
              }
              }

              dependencies {
              compile fileTree(dir: 'libs', include: ['*.jar'])

              ........
              }





              share|improve this answer


























                0












                0








                0







                The problem here is we need to provide some default value to project.apkName. So when we didn't pass apkName param from command line, it will take default value. It can be done like below



                apply plugin: 'com.android.application'
                android {
                compileSdkVersion 26
                defaultConfig {
                applicationId "com.somethind"
                minSdkVersion 16
                targetSdkVersion 25
                ....
                }

                def defaultApkName = "Pervacio_ssd.apk"
                applicationVariants.all { variant ->
                if(project.hasProperty("apkName")){
                defaultApkName = apkName;
                }
                changeAPKName(variant, defaultApkName)
                }

                buildTypes {
                ......
                ......
                }
                repositories {
                flatDir {
                dirs 'libs'
                }
                }
                }

                def changeAPKName(variant, apkName) {
                variant.outputs.all { output ->
                outputFileName = new File(apkName)
                }
                }

                dependencies {
                compile fileTree(dir: 'libs', include: ['*.jar'])

                ........
                }





                share|improve this answer













                The problem here is we need to provide some default value to project.apkName. So when we didn't pass apkName param from command line, it will take default value. It can be done like below



                apply plugin: 'com.android.application'
                android {
                compileSdkVersion 26
                defaultConfig {
                applicationId "com.somethind"
                minSdkVersion 16
                targetSdkVersion 25
                ....
                }

                def defaultApkName = "Pervacio_ssd.apk"
                applicationVariants.all { variant ->
                if(project.hasProperty("apkName")){
                defaultApkName = apkName;
                }
                changeAPKName(variant, defaultApkName)
                }

                buildTypes {
                ......
                ......
                }
                repositories {
                flatDir {
                dirs 'libs'
                }
                }
                }

                def changeAPKName(variant, apkName) {
                variant.outputs.all { output ->
                outputFileName = new File(apkName)
                }
                }

                dependencies {
                compile fileTree(dir: 'libs', include: ['*.jar'])

                ........
                }






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 26 '18 at 9:07









                ChandrakanthChandrakanth

                2,8772927




                2,8772927
































                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53408808%2favoid-gradle-build-params-for-clean-task%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Guess what letter conforming each word

                    Port of Spain

                    Run scheduled task as local user group (not BUILTIN)