Uploaded image for project: 'Maven Deploy Plugin'
  1. Maven Deploy Plugin
  2. MDEPLOY-114

Add an option to not fail when remote file already exists and redeploy is forbidden

    XMLWordPrintableJSON

    Details

      Description

      In my organisation we are using a MRM (Nexus) with redeployment of release that is forbidden.

      Sometimes the release:perform may fail in the middle of a multi-module release. It means some modules were deployed but other are not.

      Currently it is not possible to restart the release as it will fail on first deployment (usually the parent pom of the multimodule) because the pom was already deployed during the first attempt.

      I would like to add an option to the deploy plugin that may deal with this case. Perhaps an option like -Dredeploy=false that may either :
      1) check if the remote file already exists before trying to upload
      2) try to upload everytime but not fail the build

      The problem with the second proposal is the error returned by Nexus is authorization error so we may not be able to distinguish real authorization error on a new file and redeploy attempt.

      Caused by: org.apache.maven.wagon.authorization.AuthorizationException: Access denied to: http://nexus.mycompany.com/
      content/repositories/myrepo/com/mycustomer/project/parent/3.2.0/parent-3.2.0.pom
      at org.apache.maven.wagon.shared.http.AbstractHttpClientWagon.put(AbstractHttpClientWagon.java:360)

      Other options may be more complicated like implementing an atomic deploy process on multimodule (may need a big change of the deploy protocol).

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                rfscholte Robert Scholte
                Reporter:
                henryju Julien HENRY
              • Votes:
                1 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: