Make custom Gradle task, that generates code, run on IDE importhow do i make Intellij Idea recognize the generated resources from a custom gradle task?Gradle - Groovy and Java class dependency - CompileGradle task with XSL XML template generationbuild.gradle for eclipse project with multiple source foldersIntellij Idea: Importing Gradle project - getting JAVA_HOME not defined yetGradle wsdl generatingHow to make javaCompile share classpath from groovyCompile in GradleHow to exclude all but one specific jar from Gradle distZip task?Gradle: How to make Jar during build

Super Duper Vdd stiffening required on 555 timer, what is the best way?

Is there a command to install basic applications on Ubuntu 16.04?

TEMPO: play a sound in animated GIF/PDF/SVG

Heat equation: Squiggly lines

Why are Gatwick's runways too close together?

Understanding the point of a kölsche Witz

On math looking obvious in retrospect

Plotting octahedron inside the sphere and sphere inside the cube

Redis Cache Shared Session Configuration

Is it legal for a company to enter an agreement not to hire employees from another company?

How are you supposed to know the strumming pattern for a song from the "chord sheet music"?

The cat ate your input again!

How much maintenance time did it take to make an F4U Corsair ready for another flight?

PhD advisor lost funding, need advice

How to remove ambiguity: "... lives in the city of H, the capital of the province of NS, WHERE the unemployment rate is ..."?

What gave Harry Potter the idea of writing in Tom Riddle's diary?

Why did I get only 5 points even though I won?

How to create events observer that only call when REST api dispatch events?

How does "Te vas a cansar" mean "You're going to get tired"?

What is this "Table of astronomy" about?

Submitting a new paper just after another was accepted by the same journal

How to assign many blockers at the same time?

Does fossil fuels use since 1990 account for half of all the fossil fuels used in history?

Can "être sur" mean "to be about" ?



Make custom Gradle task, that generates code, run on IDE import


how do i make Intellij Idea recognize the generated resources from a custom gradle task?Gradle - Groovy and Java class dependency - CompileGradle task with XSL XML template generationbuild.gradle for eclipse project with multiple source foldersIntellij Idea: Importing Gradle project - getting JAVA_HOME not defined yetGradle wsdl generatingHow to make javaCompile share classpath from groovyCompile in GradleHow to exclude all but one specific jar from Gradle distZip task?Gradle: How to make Jar during build






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








0















Since there is no Gradle plugin for axis2 (a wsdl code generator), I called an Ant task in a custom Gradle task.



As of now ./gradlew build generates the code, and ./gradlew clean deletes it. Also, the code is only generated if changes in the input file(s) or in the output directory are detected.



The only problem I'm having is that the code is not generated automatically when the project is imported into an IDE.



How do I need to change the build.gradle.kts below in order to have the IDEs (currently IntelliJ, but I would also like support for Eclipse) generate the code on import?




plugins 
id("base") // needed for delete


val axis2 by configurations.creating

dependencies
axis2("org.apache.axis2:axis2-ant-plugin:$axis2Version")
axis2("org.apache.axis2:axis2-xmlbeans:$axis2Version")



val wsdl2Java by tasks.registering
group = "build"
description = "Creates Java classes and resources from WSDL schema."

inputs.files(fileTree("$projectDir/src/main/resources/wsdl"))
outputs.dir("$projectDir/generated/")

doLast
ant.withGroovyBuilder
"echo"("message" to "Generating Classes from WSDL!")
"taskdef"("name" to "codegen", "classname" to "org.apache.axis2.tool.ant.AntCodegenTask", "classpath" to axis2.asPath)
"codegen"(
"wsdlfilename" to "$projectDir/src/main/resources/wsdl/MP12N-H-HOST-WEB-SOAP.wsdl",
"output" to "$projectDir/generated/",
"targetSourceFolderLocation" to "src/main/java",
"targetResourcesFolderLocation" to "src/main/resources",
"packageName" to "de.hanel.com.jws.main",
"databindingName" to "xmlbeans")





val deleteGenerated by tasks.registering(Delete::class)
delete("$projectDir/generated/")


tasks
compileJava
dependsOn(wsdl2Java)


clean
dependsOn(deleteGenerated)



java
sourceSets["main"].java
srcDir("generated/src/main/java")


sourceSets["main"].resources
srcDir("generated/src/main/resources")











share|improve this question
































    0















    Since there is no Gradle plugin for axis2 (a wsdl code generator), I called an Ant task in a custom Gradle task.



    As of now ./gradlew build generates the code, and ./gradlew clean deletes it. Also, the code is only generated if changes in the input file(s) or in the output directory are detected.



    The only problem I'm having is that the code is not generated automatically when the project is imported into an IDE.



    How do I need to change the build.gradle.kts below in order to have the IDEs (currently IntelliJ, but I would also like support for Eclipse) generate the code on import?




    plugins 
    id("base") // needed for delete


    val axis2 by configurations.creating

    dependencies
    axis2("org.apache.axis2:axis2-ant-plugin:$axis2Version")
    axis2("org.apache.axis2:axis2-xmlbeans:$axis2Version")



    val wsdl2Java by tasks.registering
    group = "build"
    description = "Creates Java classes and resources from WSDL schema."

    inputs.files(fileTree("$projectDir/src/main/resources/wsdl"))
    outputs.dir("$projectDir/generated/")

    doLast
    ant.withGroovyBuilder
    "echo"("message" to "Generating Classes from WSDL!")
    "taskdef"("name" to "codegen", "classname" to "org.apache.axis2.tool.ant.AntCodegenTask", "classpath" to axis2.asPath)
    "codegen"(
    "wsdlfilename" to "$projectDir/src/main/resources/wsdl/MP12N-H-HOST-WEB-SOAP.wsdl",
    "output" to "$projectDir/generated/",
    "targetSourceFolderLocation" to "src/main/java",
    "targetResourcesFolderLocation" to "src/main/resources",
    "packageName" to "de.hanel.com.jws.main",
    "databindingName" to "xmlbeans")





    val deleteGenerated by tasks.registering(Delete::class)
    delete("$projectDir/generated/")


    tasks
    compileJava
    dependsOn(wsdl2Java)


    clean
    dependsOn(deleteGenerated)



    java
    sourceSets["main"].java
    srcDir("generated/src/main/java")


    sourceSets["main"].resources
    srcDir("generated/src/main/resources")











    share|improve this question




























      0












      0








      0








      Since there is no Gradle plugin for axis2 (a wsdl code generator), I called an Ant task in a custom Gradle task.



      As of now ./gradlew build generates the code, and ./gradlew clean deletes it. Also, the code is only generated if changes in the input file(s) or in the output directory are detected.



      The only problem I'm having is that the code is not generated automatically when the project is imported into an IDE.



      How do I need to change the build.gradle.kts below in order to have the IDEs (currently IntelliJ, but I would also like support for Eclipse) generate the code on import?




      plugins 
      id("base") // needed for delete


      val axis2 by configurations.creating

      dependencies
      axis2("org.apache.axis2:axis2-ant-plugin:$axis2Version")
      axis2("org.apache.axis2:axis2-xmlbeans:$axis2Version")



      val wsdl2Java by tasks.registering
      group = "build"
      description = "Creates Java classes and resources from WSDL schema."

      inputs.files(fileTree("$projectDir/src/main/resources/wsdl"))
      outputs.dir("$projectDir/generated/")

      doLast
      ant.withGroovyBuilder
      "echo"("message" to "Generating Classes from WSDL!")
      "taskdef"("name" to "codegen", "classname" to "org.apache.axis2.tool.ant.AntCodegenTask", "classpath" to axis2.asPath)
      "codegen"(
      "wsdlfilename" to "$projectDir/src/main/resources/wsdl/MP12N-H-HOST-WEB-SOAP.wsdl",
      "output" to "$projectDir/generated/",
      "targetSourceFolderLocation" to "src/main/java",
      "targetResourcesFolderLocation" to "src/main/resources",
      "packageName" to "de.hanel.com.jws.main",
      "databindingName" to "xmlbeans")





      val deleteGenerated by tasks.registering(Delete::class)
      delete("$projectDir/generated/")


      tasks
      compileJava
      dependsOn(wsdl2Java)


      clean
      dependsOn(deleteGenerated)



      java
      sourceSets["main"].java
      srcDir("generated/src/main/java")


      sourceSets["main"].resources
      srcDir("generated/src/main/resources")











      share|improve this question
















      Since there is no Gradle plugin for axis2 (a wsdl code generator), I called an Ant task in a custom Gradle task.



      As of now ./gradlew build generates the code, and ./gradlew clean deletes it. Also, the code is only generated if changes in the input file(s) or in the output directory are detected.



      The only problem I'm having is that the code is not generated automatically when the project is imported into an IDE.



      How do I need to change the build.gradle.kts below in order to have the IDEs (currently IntelliJ, but I would also like support for Eclipse) generate the code on import?




      plugins 
      id("base") // needed for delete


      val axis2 by configurations.creating

      dependencies
      axis2("org.apache.axis2:axis2-ant-plugin:$axis2Version")
      axis2("org.apache.axis2:axis2-xmlbeans:$axis2Version")



      val wsdl2Java by tasks.registering
      group = "build"
      description = "Creates Java classes and resources from WSDL schema."

      inputs.files(fileTree("$projectDir/src/main/resources/wsdl"))
      outputs.dir("$projectDir/generated/")

      doLast
      ant.withGroovyBuilder
      "echo"("message" to "Generating Classes from WSDL!")
      "taskdef"("name" to "codegen", "classname" to "org.apache.axis2.tool.ant.AntCodegenTask", "classpath" to axis2.asPath)
      "codegen"(
      "wsdlfilename" to "$projectDir/src/main/resources/wsdl/MP12N-H-HOST-WEB-SOAP.wsdl",
      "output" to "$projectDir/generated/",
      "targetSourceFolderLocation" to "src/main/java",
      "targetResourcesFolderLocation" to "src/main/resources",
      "packageName" to "de.hanel.com.jws.main",
      "databindingName" to "xmlbeans")





      val deleteGenerated by tasks.registering(Delete::class)
      delete("$projectDir/generated/")


      tasks
      compileJava
      dependsOn(wsdl2Java)


      clean
      dependsOn(deleteGenerated)



      java
      sourceSets["main"].java
      srcDir("generated/src/main/java")


      sourceSets["main"].resources
      srcDir("generated/src/main/resources")








      java gradle intellij-idea code-generation gradle-kotlin-dsl






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Mar 28 at 10:16







      mike

















      asked Mar 27 at 8:54









      mikemike

      3,4073 gold badges28 silver badges58 bronze badges




      3,4073 gold badges28 silver badges58 bronze badges

























          2 Answers
          2






          active

          oldest

          votes


















          1














          You can mark any task or run configuration to be activated before/after Gradle import or IDE make:



          enter image description here






          share|improve this answer

























          • Thanks, but that's not exactly what I asked :-) I want to configure the build system. It should tell the IDE what to do. This way it's easier for other users (and for me if I combe back to the project some later time).

            – mike
            Mar 27 at 9:55












          • Looks like the youtrack.jetbrains.com/issue/IDEA-160605 is what you need then. I'll update the answer.

            – Andrey
            Mar 27 at 10:12


















          0














          I have a working solution now. Both Eclipse and IntelliJ generate the source code on import.



          First we add the IDE-specific plugins.



          apply 
          plugin("idea")
          plugin("eclipse")



          Then we get the corresponding IDE tasks and add our own task, that was defined in val wsdl2Java, as dependency



          // find by name (in tasks container), since a module is also called 'idea'
          project.tasks.findByName("idea")?.dependsOn(wsdl2Java)
          project.tasks.findByName("eclipse")?.dependsOn(wsdl2Java)



          The only problem is that apparently Eclipse can't handle



          java 
          sourceSets["main"].java
          srcDir("generated/src/main/java")


          sourceSets["main"].resources
          srcDir("generated/src/main/resources")




          But that's a different question.



          UPDATE



          The code block below tells Eclipse to include the generated sources



          eclipse 
          classpath
          plusConfigurations.add(configurations.findByName("compile"))




          and this tells IntelliJ to mark the generated, and already included, sources as generated



          idea 
          module
          generatedSourceDirs.add(file("generated/src/main/java"))







          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%2f55373141%2fmake-custom-gradle-task-that-generates-code-run-on-ide-import%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            1














            You can mark any task or run configuration to be activated before/after Gradle import or IDE make:



            enter image description here






            share|improve this answer

























            • Thanks, but that's not exactly what I asked :-) I want to configure the build system. It should tell the IDE what to do. This way it's easier for other users (and for me if I combe back to the project some later time).

              – mike
              Mar 27 at 9:55












            • Looks like the youtrack.jetbrains.com/issue/IDEA-160605 is what you need then. I'll update the answer.

              – Andrey
              Mar 27 at 10:12















            1














            You can mark any task or run configuration to be activated before/after Gradle import or IDE make:



            enter image description here






            share|improve this answer

























            • Thanks, but that's not exactly what I asked :-) I want to configure the build system. It should tell the IDE what to do. This way it's easier for other users (and for me if I combe back to the project some later time).

              – mike
              Mar 27 at 9:55












            • Looks like the youtrack.jetbrains.com/issue/IDEA-160605 is what you need then. I'll update the answer.

              – Andrey
              Mar 27 at 10:12













            1












            1








            1







            You can mark any task or run configuration to be activated before/after Gradle import or IDE make:



            enter image description here






            share|improve this answer













            You can mark any task or run configuration to be activated before/after Gradle import or IDE make:



            enter image description here







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Mar 27 at 9:51









            AndreyAndrey

            4,43620 silver badges82 bronze badges




            4,43620 silver badges82 bronze badges















            • Thanks, but that's not exactly what I asked :-) I want to configure the build system. It should tell the IDE what to do. This way it's easier for other users (and for me if I combe back to the project some later time).

              – mike
              Mar 27 at 9:55












            • Looks like the youtrack.jetbrains.com/issue/IDEA-160605 is what you need then. I'll update the answer.

              – Andrey
              Mar 27 at 10:12

















            • Thanks, but that's not exactly what I asked :-) I want to configure the build system. It should tell the IDE what to do. This way it's easier for other users (and for me if I combe back to the project some later time).

              – mike
              Mar 27 at 9:55












            • Looks like the youtrack.jetbrains.com/issue/IDEA-160605 is what you need then. I'll update the answer.

              – Andrey
              Mar 27 at 10:12
















            Thanks, but that's not exactly what I asked :-) I want to configure the build system. It should tell the IDE what to do. This way it's easier for other users (and for me if I combe back to the project some later time).

            – mike
            Mar 27 at 9:55






            Thanks, but that's not exactly what I asked :-) I want to configure the build system. It should tell the IDE what to do. This way it's easier for other users (and for me if I combe back to the project some later time).

            – mike
            Mar 27 at 9:55














            Looks like the youtrack.jetbrains.com/issue/IDEA-160605 is what you need then. I'll update the answer.

            – Andrey
            Mar 27 at 10:12





            Looks like the youtrack.jetbrains.com/issue/IDEA-160605 is what you need then. I'll update the answer.

            – Andrey
            Mar 27 at 10:12













            0














            I have a working solution now. Both Eclipse and IntelliJ generate the source code on import.



            First we add the IDE-specific plugins.



            apply 
            plugin("idea")
            plugin("eclipse")



            Then we get the corresponding IDE tasks and add our own task, that was defined in val wsdl2Java, as dependency



            // find by name (in tasks container), since a module is also called 'idea'
            project.tasks.findByName("idea")?.dependsOn(wsdl2Java)
            project.tasks.findByName("eclipse")?.dependsOn(wsdl2Java)



            The only problem is that apparently Eclipse can't handle



            java 
            sourceSets["main"].java
            srcDir("generated/src/main/java")


            sourceSets["main"].resources
            srcDir("generated/src/main/resources")




            But that's a different question.



            UPDATE



            The code block below tells Eclipse to include the generated sources



            eclipse 
            classpath
            plusConfigurations.add(configurations.findByName("compile"))




            and this tells IntelliJ to mark the generated, and already included, sources as generated



            idea 
            module
            generatedSourceDirs.add(file("generated/src/main/java"))







            share|improve this answer































              0














              I have a working solution now. Both Eclipse and IntelliJ generate the source code on import.



              First we add the IDE-specific plugins.



              apply 
              plugin("idea")
              plugin("eclipse")



              Then we get the corresponding IDE tasks and add our own task, that was defined in val wsdl2Java, as dependency



              // find by name (in tasks container), since a module is also called 'idea'
              project.tasks.findByName("idea")?.dependsOn(wsdl2Java)
              project.tasks.findByName("eclipse")?.dependsOn(wsdl2Java)



              The only problem is that apparently Eclipse can't handle



              java 
              sourceSets["main"].java
              srcDir("generated/src/main/java")


              sourceSets["main"].resources
              srcDir("generated/src/main/resources")




              But that's a different question.



              UPDATE



              The code block below tells Eclipse to include the generated sources



              eclipse 
              classpath
              plusConfigurations.add(configurations.findByName("compile"))




              and this tells IntelliJ to mark the generated, and already included, sources as generated



              idea 
              module
              generatedSourceDirs.add(file("generated/src/main/java"))







              share|improve this answer





























                0












                0








                0







                I have a working solution now. Both Eclipse and IntelliJ generate the source code on import.



                First we add the IDE-specific plugins.



                apply 
                plugin("idea")
                plugin("eclipse")



                Then we get the corresponding IDE tasks and add our own task, that was defined in val wsdl2Java, as dependency



                // find by name (in tasks container), since a module is also called 'idea'
                project.tasks.findByName("idea")?.dependsOn(wsdl2Java)
                project.tasks.findByName("eclipse")?.dependsOn(wsdl2Java)



                The only problem is that apparently Eclipse can't handle



                java 
                sourceSets["main"].java
                srcDir("generated/src/main/java")


                sourceSets["main"].resources
                srcDir("generated/src/main/resources")




                But that's a different question.



                UPDATE



                The code block below tells Eclipse to include the generated sources



                eclipse 
                classpath
                plusConfigurations.add(configurations.findByName("compile"))




                and this tells IntelliJ to mark the generated, and already included, sources as generated



                idea 
                module
                generatedSourceDirs.add(file("generated/src/main/java"))







                share|improve this answer















                I have a working solution now. Both Eclipse and IntelliJ generate the source code on import.



                First we add the IDE-specific plugins.



                apply 
                plugin("idea")
                plugin("eclipse")



                Then we get the corresponding IDE tasks and add our own task, that was defined in val wsdl2Java, as dependency



                // find by name (in tasks container), since a module is also called 'idea'
                project.tasks.findByName("idea")?.dependsOn(wsdl2Java)
                project.tasks.findByName("eclipse")?.dependsOn(wsdl2Java)



                The only problem is that apparently Eclipse can't handle



                java 
                sourceSets["main"].java
                srcDir("generated/src/main/java")


                sourceSets["main"].resources
                srcDir("generated/src/main/resources")




                But that's a different question.



                UPDATE



                The code block below tells Eclipse to include the generated sources



                eclipse 
                classpath
                plusConfigurations.add(configurations.findByName("compile"))




                and this tells IntelliJ to mark the generated, and already included, sources as generated



                idea 
                module
                generatedSourceDirs.add(file("generated/src/main/java"))








                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited Mar 28 at 10:31

























                answered Mar 27 at 10:53









                mikemike

                3,4073 gold badges28 silver badges58 bronze badges




                3,4073 gold badges28 silver badges58 bronze badges






























                    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%2f55373141%2fmake-custom-gradle-task-that-generates-code-run-on-ide-import%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

                    Kamusi Yaliyomo Aina za kamusi | Muundo wa kamusi | Faida za kamusi | Dhima ya picha katika kamusi | Marejeo | Tazama pia | Viungo vya nje | UrambazajiKuhusu kamusiGo-SwahiliWiki-KamusiKamusi ya Kiswahili na Kiingerezakuihariri na kuongeza habari

                    SQL error code 1064 with creating Laravel foreign keysForeign key constraints: When to use ON UPDATE and ON DELETEDropping column with foreign key Laravel error: General error: 1025 Error on renameLaravel SQL Can't create tableLaravel Migration foreign key errorLaravel php artisan migrate:refresh giving a syntax errorSQLSTATE[42S01]: Base table or view already exists or Base table or view already exists: 1050 Tableerror in migrating laravel file to xampp serverSyntax error or access violation: 1064:syntax to use near 'unsigned not null, modelName varchar(191) not null, title varchar(191) not nLaravel cannot create new table field in mysqlLaravel 5.7:Last migration creates table but is not registered in the migration table

                    은진 송씨 목차 역사 본관 분파 인물 조선 왕실과의 인척 관계 집성촌 항렬자 인구 같이 보기 각주 둘러보기 메뉴은진 송씨세종실록 149권, 지리지 충청도 공주목 은진현