Not able to extend a Gradle task











up vote
0
down vote

favorite












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


























    up vote
    0
    down vote

    favorite












    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
























      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      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

















          up vote
          0
          down vote













          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',
            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








            up vote
            0
            down vote













            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



























              up vote
              0
              down vote













              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

























                up vote
                0
                down vote










                up vote
                0
                down vote









                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

                525312




                525312






























                    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

                    Costa Masnaga

                    Fotorealismo

                    Sidney Franklin