Not able to extend a Gradle task












0














I'm new with Gradle (we're switching from SBT) and using it to build apps made with Play Framework.



I need to add some filtering on the resources before Gradle processes them (I would like to inject some build properties into the configuration to make them available from the code).



I've managed to "extend" the java processResources task, but, for some reason, I cannot do the same with play processPlayBinaryPlayResources.



processPlayBinaryPlayResources {
filter ReplaceTokens, tokens: [
"applicationVersion": version
]
}


Even this doesn't work :



def playVersion = "2.6.20"
def scalaVersion = "2.12"
def javaVersion = "1.8"

apply plugin: "java"
apply plugin: "idea"
apply plugin: "play"

model {
components {
play {
platform play: playVersion, scala: scalaVersion, java: javaVersion
injectedRoutesGenerator = true
}
}
}

processPlayBinaryPlayResources {
doLast {
println("ok")
}
}

dependencies {
compile "io.vavr:vavr:0.9.2"
compile "org.imgscalr:imgscalr-lib:4.2"
compile "com.typesafe.play:play-guice_${scalaVersion}:2.6.20"
compile "com.typesafe.akka:akka-http_${scalaVersion}:10.1.5"
compile "com.typesafe.play:filters-helpers_${scalaVersion}:2.6.20"
compile "ch.qos.logback:logback-classic:1.2.3"
}


It yields :



> Could not find method processPlayBinaryPlayResources() for arguments [build_6grwx7eowye82rdqpu4qlinur$_run_closure2@582d9dbd] on root project 'myproject' of type org.gradle.api.Project.


Any idea why ?










share|improve this question



























    0














    I'm new with Gradle (we're switching from SBT) and using it to build apps made with Play Framework.



    I need to add some filtering on the resources before Gradle processes them (I would like to inject some build properties into the configuration to make them available from the code).



    I've managed to "extend" the java processResources task, but, for some reason, I cannot do the same with play processPlayBinaryPlayResources.



    processPlayBinaryPlayResources {
    filter ReplaceTokens, tokens: [
    "applicationVersion": version
    ]
    }


    Even this doesn't work :



    def playVersion = "2.6.20"
    def scalaVersion = "2.12"
    def javaVersion = "1.8"

    apply plugin: "java"
    apply plugin: "idea"
    apply plugin: "play"

    model {
    components {
    play {
    platform play: playVersion, scala: scalaVersion, java: javaVersion
    injectedRoutesGenerator = true
    }
    }
    }

    processPlayBinaryPlayResources {
    doLast {
    println("ok")
    }
    }

    dependencies {
    compile "io.vavr:vavr:0.9.2"
    compile "org.imgscalr:imgscalr-lib:4.2"
    compile "com.typesafe.play:play-guice_${scalaVersion}:2.6.20"
    compile "com.typesafe.akka:akka-http_${scalaVersion}:10.1.5"
    compile "com.typesafe.play:filters-helpers_${scalaVersion}:2.6.20"
    compile "ch.qos.logback:logback-classic:1.2.3"
    }


    It yields :



    > Could not find method processPlayBinaryPlayResources() for arguments [build_6grwx7eowye82rdqpu4qlinur$_run_closure2@582d9dbd] on root project 'myproject' of type org.gradle.api.Project.


    Any idea why ?










    share|improve this question

























      0












      0








      0







      I'm new with Gradle (we're switching from SBT) and using it to build apps made with Play Framework.



      I need to add some filtering on the resources before Gradle processes them (I would like to inject some build properties into the configuration to make them available from the code).



      I've managed to "extend" the java processResources task, but, for some reason, I cannot do the same with play processPlayBinaryPlayResources.



      processPlayBinaryPlayResources {
      filter ReplaceTokens, tokens: [
      "applicationVersion": version
      ]
      }


      Even this doesn't work :



      def playVersion = "2.6.20"
      def scalaVersion = "2.12"
      def javaVersion = "1.8"

      apply plugin: "java"
      apply plugin: "idea"
      apply plugin: "play"

      model {
      components {
      play {
      platform play: playVersion, scala: scalaVersion, java: javaVersion
      injectedRoutesGenerator = true
      }
      }
      }

      processPlayBinaryPlayResources {
      doLast {
      println("ok")
      }
      }

      dependencies {
      compile "io.vavr:vavr:0.9.2"
      compile "org.imgscalr:imgscalr-lib:4.2"
      compile "com.typesafe.play:play-guice_${scalaVersion}:2.6.20"
      compile "com.typesafe.akka:akka-http_${scalaVersion}:10.1.5"
      compile "com.typesafe.play:filters-helpers_${scalaVersion}:2.6.20"
      compile "ch.qos.logback:logback-classic:1.2.3"
      }


      It yields :



      > Could not find method processPlayBinaryPlayResources() for arguments [build_6grwx7eowye82rdqpu4qlinur$_run_closure2@582d9dbd] on root project 'myproject' of type org.gradle.api.Project.


      Any idea why ?










      share|improve this question













      I'm new with Gradle (we're switching from SBT) and using it to build apps made with Play Framework.



      I need to add some filtering on the resources before Gradle processes them (I would like to inject some build properties into the configuration to make them available from the code).



      I've managed to "extend" the java processResources task, but, for some reason, I cannot do the same with play processPlayBinaryPlayResources.



      processPlayBinaryPlayResources {
      filter ReplaceTokens, tokens: [
      "applicationVersion": version
      ]
      }


      Even this doesn't work :



      def playVersion = "2.6.20"
      def scalaVersion = "2.12"
      def javaVersion = "1.8"

      apply plugin: "java"
      apply plugin: "idea"
      apply plugin: "play"

      model {
      components {
      play {
      platform play: playVersion, scala: scalaVersion, java: javaVersion
      injectedRoutesGenerator = true
      }
      }
      }

      processPlayBinaryPlayResources {
      doLast {
      println("ok")
      }
      }

      dependencies {
      compile "io.vavr:vavr:0.9.2"
      compile "org.imgscalr:imgscalr-lib:4.2"
      compile "com.typesafe.play:play-guice_${scalaVersion}:2.6.20"
      compile "com.typesafe.akka:akka-http_${scalaVersion}:10.1.5"
      compile "com.typesafe.play:filters-helpers_${scalaVersion}:2.6.20"
      compile "ch.qos.logback:logback-classic:1.2.3"
      }


      It yields :



      > Could not find method processPlayBinaryPlayResources() for arguments [build_6grwx7eowye82rdqpu4qlinur$_run_closure2@582d9dbd] on root project 'myproject' of type org.gradle.api.Project.


      Any idea why ?







      gradle playback






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 19 at 22:35









      Utundu

      84118




      84118
























          1 Answer
          1






          active

          oldest

          votes


















          0














          Your assumption of finding a task processPlayBinaryPlayResources is based on that, that the java plugin automatically adds a processResources task for all source set as process<sourceset_name>Resources . This happens only when a source set is added using java pugins sourceSets method which, in this case PlayBinaryPlay is not. The play plugin uses its own DSL to configure source sets.
          Therefore when you try extending processPlayBinaryPlayResources it does not happen as no such tasks by that name exists in the first place and hence while delegating it to Project, you end up with this



           Could not find method processPlayBinaryPlayResources() for arguments [build_6grwx7eowye82rdqpu4qlinur$_run_closure2@582d9dbd] on root project 'myproject' of type org.gradle.api.Project.


          Lastly, I would like to add that the processPlayBinaryPlayResources task is not added by the play plugin.






          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%2f53383632%2fnot-able-to-extend-a-gradle-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














            Your assumption of finding a task processPlayBinaryPlayResources is based on that, that the java plugin automatically adds a processResources task for all source set as process<sourceset_name>Resources . This happens only when a source set is added using java pugins sourceSets method which, in this case PlayBinaryPlay is not. The play plugin uses its own DSL to configure source sets.
            Therefore when you try extending processPlayBinaryPlayResources it does not happen as no such tasks by that name exists in the first place and hence while delegating it to Project, you end up with this



             Could not find method processPlayBinaryPlayResources() for arguments [build_6grwx7eowye82rdqpu4qlinur$_run_closure2@582d9dbd] on root project 'myproject' of type org.gradle.api.Project.


            Lastly, I would like to add that the processPlayBinaryPlayResources task is not added by the play plugin.






            share|improve this answer




























              0














              Your assumption of finding a task processPlayBinaryPlayResources is based on that, that the java plugin automatically adds a processResources task for all source set as process<sourceset_name>Resources . This happens only when a source set is added using java pugins sourceSets method which, in this case PlayBinaryPlay is not. The play plugin uses its own DSL to configure source sets.
              Therefore when you try extending processPlayBinaryPlayResources it does not happen as no such tasks by that name exists in the first place and hence while delegating it to Project, you end up with this



               Could not find method processPlayBinaryPlayResources() for arguments [build_6grwx7eowye82rdqpu4qlinur$_run_closure2@582d9dbd] on root project 'myproject' of type org.gradle.api.Project.


              Lastly, I would like to add that the processPlayBinaryPlayResources task is not added by the play plugin.






              share|improve this answer


























                0












                0








                0






                Your assumption of finding a task processPlayBinaryPlayResources is based on that, that the java plugin automatically adds a processResources task for all source set as process<sourceset_name>Resources . This happens only when a source set is added using java pugins sourceSets method which, in this case PlayBinaryPlay is not. The play plugin uses its own DSL to configure source sets.
                Therefore when you try extending processPlayBinaryPlayResources it does not happen as no such tasks by that name exists in the first place and hence while delegating it to Project, you end up with this



                 Could not find method processPlayBinaryPlayResources() for arguments [build_6grwx7eowye82rdqpu4qlinur$_run_closure2@582d9dbd] on root project 'myproject' of type org.gradle.api.Project.


                Lastly, I would like to add that the processPlayBinaryPlayResources task is not added by the play plugin.






                share|improve this answer














                Your assumption of finding a task processPlayBinaryPlayResources is based on that, that the java plugin automatically adds a processResources task for all source set as process<sourceset_name>Resources . This happens only when a source set is added using java pugins sourceSets method which, in this case PlayBinaryPlay is not. The play plugin uses its own DSL to configure source sets.
                Therefore when you try extending processPlayBinaryPlayResources it does not happen as no such tasks by that name exists in the first place and hence while delegating it to Project, you end up with this



                 Could not find method processPlayBinaryPlayResources() for arguments [build_6grwx7eowye82rdqpu4qlinur$_run_closure2@582d9dbd] on root project 'myproject' of type org.gradle.api.Project.


                Lastly, I would like to add that the processPlayBinaryPlayResources task is not added by the play plugin.







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited Nov 22 at 7:56

























                answered Nov 21 at 5:04









                Ryotsu

                550312




                550312






























                    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.





                    Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                    Please pay close attention to the following guidance:


                    • 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%2f53383632%2fnot-able-to-extend-a-gradle-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

                    "Incorrect syntax near the keyword 'ON'. (on update cascade, on delete cascade,)

                    Alcedinidae

                    RAC Tourist Trophy