Maven 1.x Ant Plugin
  1. Maven 1.x Ant Plugin
  2. MPANT-20

Allow URL substitutions in generated build.xml files

    Details

    • Type: Improvement Improvement
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.9
    • Labels:
      None
    • Environment:
      Java
    • Number of attachments :
      2

      Description

      Issue MPANT-7 contemplates improvements to the generated build.xml file that is produced by this plugin, but it does not deal with a use case that I am facing.

      In various Jakarta Commons packages that I participate in, we like to cater to users who like Ant as well as those who like Maven as their build tool. To accomodate the Ant users, we have a developer periodically generate the build.xml file (using this plugin) and check it in to our CVS repository. For the most part, this approach is functional – although I'll quibble about the fact that "ant clean dist" cleans out the downloaded dependencies, so my nightly builds of Commons packages always have to download them again, but that's a different issue .

      However, this situation fails with dependencies that cannot be publicly posted on a Maven repository. In particular, this currently affects Commons Email (which needs JavaMail and JAF jars) and Commons Chain (which needs JavaServer Faces API jars), which cannot be posted in a repository due to license restrictions. The changes for MPANT-7 seem to help if the same person is both generating the build.xml file and executing it (with overrides in your local project properties). But it doesn't help when someone else is going to download and execute the build.xml file.

      I suggest changes to the generated build.xml file along the following lines:

      • Add a '<property file="build.properties"/>' element at the top
        of the generated script, to pick up local property overrides.
      • For each dependency where you are going to generate a <get>
        command, create an Ant property that defines the default URL
        from which to retrieve that dependency.
      • In the actual <get> tasks, use the Ant property instead of a
        hard coded URL based on the default repository.

      In this way, I can point at any particular repository – or, for that matter, to any local file if I create a file: URL – for any given dependency. This allows users of the generated build.xml file to point at their own copies of non-redistributable JAR files, without impacting the generated build.xml file itself (which is obviously preferable to hand editing the generated file each time it is recreated).

      1. MPANT-20.patch
        4 kB
        Dennis Lundberg
      2. MPANT-20-documentation.patch
        1.0 kB
        Dennis Lundberg

        Activity

        Hide
        Dennis Lundberg added a comment -

        Here is some documentation for the new property.

        Show
        Dennis Lundberg added a comment - Here is some documentation for the new property.
        Hide
        Arnaud Heritier added a comment -

        Thanks a lot Dennis. I waited for your opinion abaout my last comment before to document this feature.
        I must also document the properties syntax to override default dependencies.
        I'll try to do it tomorrow and I'll close this issue.

        Show
        Arnaud Heritier added a comment - Thanks a lot Dennis. I waited for your opinion abaout my last comment before to document this feature. I must also document the properties syntax to override default dependencies. I'll try to do it tomorrow and I'll close this issue.
        Hide
        Dennis Lundberg added a comment -

        I have tried the current cvs HEAD, sorry svn trunk, of the this plugin back and forth now, with and without the new property, and it works as expected.

        Show
        Dennis Lundberg added a comment - I have tried the current cvs HEAD, sorry svn trunk, of the this plugin back and forth now, with and without the new property, and it works as expected.
        Hide
        Arnaud Heritier added a comment -

        Ok it's cool. thanks for your help.

        Show
        Arnaud Heritier added a comment - Ok it's cool. thanks for your help.
        Hide
        Arnaud Heritier added a comment -

        Applied. Thanks to Craig McClanahan for the idea, and to Dennis Lundberg for patchs.

        Show
        Arnaud Heritier added a comment - Applied. Thanks to Craig McClanahan for the idea, and to Dennis Lundberg for patchs.

          People

          • Assignee:
            Arnaud Heritier
            Reporter:
            Craig McClanahan
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: