Spring Roo
  1. Spring Roo
  2. ROO-91

Support Ant+Ivy as an alternative user project build system to Maven

    Details

    • Type: New Feature New Feature
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: BUILD
    • Labels:
      None

      Description

      Currently Roo emits Maven-based projects. A number of people have expressed a preference for Roo to emit Ant+Ivy based projects instead.

      Roo was designed from the outset to enable this type of change. We already use Ivy's XML format for dependency definition, even when it is eventually written out to a Maven pom.xml. There is also the "project" module, which is separate from the "addon-maven" module and provides the APIs that build system-specific add-ons (like Maven or Ant+Ivy) must implement. Provided these are implemented, it is not difficult to support an alternate project build system. We would need to give some consideration to lifecycle issues, though, namely which build system takes precedence at startup (eg if there is both a pom.xml and build.xml in the current working directory).

      This issue has been created so people wishing to see this add-on can use Jira features to vote and/or watch this issue.

        Issue Links

          Activity

          Hide
          Sergey Dryganets added a comment -

          Also please remove dependency from maven addon in classpath part of roo.

          I'm developing roo based productivity tool for android platform and I want to use ant instead (maven is to complex for android projects)

          class ProjectOperations used in classpath project and it's contain maven addon code.

          I want to remove maven addon now from my roo distribution.

          Now I just move ProjectOperations class to my plugin and create my extention of this class
          AndroidOperations

          Show
          Sergey Dryganets added a comment - Also please remove dependency from maven addon in classpath part of roo. I'm developing roo based productivity tool for android platform and I want to use ant instead (maven is to complex for android projects) class ProjectOperations used in classpath project and it's contain maven addon code. I want to remove maven addon now from my roo distribution. Now I just move ProjectOperations class to my plugin and create my extention of this class AndroidOperations
          Hide
          Klaus Lehner added a comment -

          Seems this won't be implemented in 1.1.0, right? Any plans when to put that onto the roadmap?

          Show
          Klaus Lehner added a comment - Seems this won't be implemented in 1.1.0, right? Any plans when to put that onto the roadmap?
          Hide
          William Parker added a comment -

          Will there be any plasn to implement this in the near future? looks like it has been shelved for 1.1. Is there any guidance available on a workaround for non Maven users in the meantime, or is Roo unusable without Maven? I have seen some suggestion that we need to implement a new PathResolver - I'm thinking we should be able to plug this in somehow but can't find any guidance on this, and the documentation section has not been completed yet.

          Show
          William Parker added a comment - Will there be any plasn to implement this in the near future? looks like it has been shelved for 1.1. Is there any guidance available on a workaround for non Maven users in the meantime, or is Roo unusable without Maven? I have seen some suggestion that we need to implement a new PathResolver - I'm thinking we should be able to plug this in somehow but can't find any guidance on this, and the documentation section has not been completed yet.
          Hide
          Klaus Lehner added a comment -

          Seems this is still not scheduled for a release although only two other issues have more votes. Any plans on that?

          Show
          Klaus Lehner added a comment - Seems this is still not scheduled for a release although only two other issues have more votes. Any plans on that?
          Hide
          Dan Stine added a comment -

          I'd also be interested to hear if this item is on the roadmap.

          In the meantime, here is a thread on how to create an Ant build script for a Roo project:

          http://forum.springsource.org/showthread.php?109613-Problem-getting-Spring.Roo-into-production-building-using-Ant

          Show
          Dan Stine added a comment - I'd also be interested to hear if this item is on the roadmap. In the meantime, here is a thread on how to create an Ant build script for a Roo project: http://forum.springsource.org/showthread.php?109613-Problem-getting-Spring.Roo-into-production-building-using-Ant
          Hide
          Matt Goldspink added a comment -

          I've started adding support at home for this because I'd love to use it. My hacked up version works fine, I'm now trying to tidy it up into a more suitable patch that I can submit. To give a brief summary of how it will work (at least at the moment), it generates the ivy-settings.xml, ivy.xml and a build.properties file. I'll also spit out a basic ant build.xml, but given that most people will likely have all their own custom ant tasks they want to use I'm leaving this as empty as possible and people can then modify it to suit their needs. The command line tool will all you to then run any available ant targets in the same way you can with maven via the "perform" command.

          One issue I've hit while testing is that a lot of plugins assume a pom.xml exists, so any patch I submit will need to also fix these. It's all possible though which is the nice thing and so far it seems to be working well.

          Show
          Matt Goldspink added a comment - I've started adding support at home for this because I'd love to use it. My hacked up version works fine, I'm now trying to tidy it up into a more suitable patch that I can submit. To give a brief summary of how it will work (at least at the moment), it generates the ivy-settings.xml, ivy.xml and a build.properties file. I'll also spit out a basic ant build.xml, but given that most people will likely have all their own custom ant tasks they want to use I'm leaving this as empty as possible and people can then modify it to suit their needs. The command line tool will all you to then run any available ant targets in the same way you can with maven via the "perform" command. One issue I've hit while testing is that a lot of plugins assume a pom.xml exists, so any patch I submit will need to also fix these. It's all possible though which is the nice thing and so far it seems to be working well.
          Hide
          Mark Smithson added a comment -

          Looking forward to seeing your patch. If you need some help tidying it up just ask!

          Show
          Mark Smithson added a comment - Looking forward to seeing your patch. If you need some help tidying it up just ask!
          Hide
          Dan Lydick added a comment -

          I agree with earlier comments that Maven can be too much complexity for a Roo project. Shops that use Ant have developed specific standards for their 'build.xml' files. Many of these same shops specifically do not use Maven due to the perception that you MUST do things Maven's way instead of Maven working to accomodate your own standards and procedures. While this is not strictly a fair statement, if Roo had built-in support for Ant, it would add to the appeal that Roo has as a Spring product in being a "good neighbor" who always tries to work well with other technologies in a runtime environment AND in the related development environment.

          Roo support of Ant would only increase the appeal it has and speed up its adoption as an industry standard.

          Show
          Dan Lydick added a comment - I agree with earlier comments that Maven can be too much complexity for a Roo project. Shops that use Ant have developed specific standards for their 'build.xml' files. Many of these same shops specifically do not use Maven due to the perception that you MUST do things Maven's way instead of Maven working to accomodate your own standards and procedures. While this is not strictly a fair statement, if Roo had built-in support for Ant, it would add to the appeal that Roo has as a Spring product in being a "good neighbor" who always tries to work well with other technologies in a runtime environment AND in the related development environment. Roo support of Ant would only increase the appeal it has and speed up its adoption as an industry standard.

            People

            • Assignee:
              Unassigned
              Reporter:
              Rod Johnson
            • Votes:
              104 Vote for this issue
              Watchers:
              64 Start watching this issue

              Dates

              • Created:
                Updated: