Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 2.0-beta-4
    • 2.0-beta-7
    • None
    • None

    Description

      I have a SNAPSHOT of the war plugin that I built and deployed to fix a blocker for us (MWAR-39) that has not been released. In my POM, I refer to it like this:

      <build>
      <plugins>
      <plugin>
      <artifactId>maven-war-plugin</artifactId>
      <version>2.0.1-20060525.222101-1</version>

      I did this specifically so the release plugin would not think it was a SNAPSHOT so I could release the module. But when I do try to release, I get this error:

      [INFO] Can't release project due to non released dependencies :
      org.apache.maven.plugins:maven-war-plugin:maven-plugin:2.0.1-SNAPSHOT:runtime
      in project 'UDDI WAR' (com.webify.fabric:fabric-uddi-web:war:1.1.0-SNAPSHOT)

      This is because in ArtifactUtils.isSnapshot, it specifically disallows the version pattern created by the deploy plugin.

      So consider my usecase: I'm Joe Corporate, a user who needs a war bug fix in their build process ASAP. I build and deploy the latest war plugin to my internal repo and reference that explicit timestamp version in my build process. Now I can understand why you disallow this because if I try to build outside of our corporate walls, it will not work. But I can't use the release plugin to release either because it requires me to check the modified POMs into my SCM and the war plugin is in Apache's SCM and I can't check into it.

      There's only two hack workarounds I can think of: 1) explicitly reversion the jar to not include SNAPSHOT or the specific timestamp pattern. 2) Check the war plugin into our own SCM and release from there, effectively forking the code.

      Your thoughts? How can we fix bugs in the build process locally and still use the release plugin?

      Attachments

        1. ReleaseUtils.rev552741.patch
          0.9 kB
          Tuomas Kiviaho
        2. releasePluginIgnoreSnapshot.patch
          8 kB
          Brian Topping
        3. maven-release-plugin-2.0-beta-7-SNAPSHOT.rev552741.patch
          1 kB
          Tuomas Kiviaho
        4. maven-release-manager-1.0-alpha-4-SNAPSHOT.rev552741.patch
          8 kB
          Tuomas Kiviaho

        Issue Links

          Activity

            brett Brett Porter added a comment -

            I think this is still a good default behaviour (As timestamps can get removed in the future where releases are less likely to).

            However, I'd be ok with an allowTimestampedSnapshots flag.

            I'd probably suggest 1) or 2) are better solutions though. We should consider 'vendor' releases in the versioning scheme in Maven 2.1 which would make this easier.

            brett Brett Porter added a comment - I think this is still a good default behaviour (As timestamps can get removed in the future where releases are less likely to). However, I'd be ok with an allowTimestampedSnapshots flag. I'd probably suggest 1) or 2) are better solutions though. We should consider 'vendor' releases in the versioning scheme in Maven 2.1 which would make this easier.
            mperham Mike Perham added a comment -

            Interesting. I can put the timestamp build in a <pluginManagement> section of a parent POM, release that and then use it in a WAR module which can be released.

            mperham Mike Perham added a comment - Interesting. I can put the timestamp build in a <pluginManagement> section of a parent POM, release that and then use it in a WAR module which can be released.
            topping Brian Topping added a comment -

            Patch with test case for new allowTimestampedSnapshots flag.

            topping Brian Topping added a comment - Patch with test case for new allowTimestampedSnapshots flag.
            topping Brian Topping added a comment -

            I should add this patch is against revision 465377.

            topping Brian Topping added a comment - I should add this patch is against revision 465377.
            tuomas_kiviaho Tuomas Kiviaho added a comment -

            Patched against revision 552741

            tuomas_kiviaho Tuomas Kiviaho added a comment - Patched against revision 552741
            tuomas_kiviaho Tuomas Kiviaho added a comment -

            John Casey has written a plugin that could automate unique versioning <http://www.commonjava.org/~jdcasey/maven-misc/plugins/snapshot-pin-maven-plugin.zip>. Blog at <http://blogs.sonatype.com/john/2007/08/14/1187117747444.html>. Wether this plugin cover parent version of pom also along with dependencies is unknown to me.

            tuomas_kiviaho Tuomas Kiviaho added a comment - John Casey has written a plugin that could automate unique versioning < http://www.commonjava.org/~jdcasey/maven-misc/plugins/snapshot-pin-maven-plugin.zip >. Blog at < http://blogs.sonatype.com/john/2007/08/14/1187117747444.html >. Wether this plugin cover parent version of pom also along with dependencies is unknown to me.
            tuomas_kiviaho Tuomas Kiviaho added a comment -

            I noticed that issue MNG-2961 changed the behavior of artifact.isSnapshot() , but this change shouldn't have any impact since the patch didn't have to rely on the side effect in the first place.

            tuomas_kiviaho Tuomas Kiviaho added a comment - I noticed that issue MNG-2961 changed the behavior of artifact.isSnapshot() , but this change shouldn't have any impact since the patch didn't have to rely on the side effect in the first place.
            brett Brett Porter added a comment -

            applied, thanks for that!

            brett Brett Porter added a comment - applied, thanks for that!

            People

              brett Brett Porter
              mperham Mike Perham
              Votes:
              3 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: