Uploaded image for project: 'Maven'
  1. Maven
  2. MNG-5639

Support resolution of Import Scope POMs from Repo that contains a ${parameter}

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 3.2.1
    • 3.2.2
    • Dependencies
    • None

    Description

      Running mvn help:effective-pom on the attached POM:

      [ERROR]   The project com.ming:maven-failing-import-pom-example:1.0.0-SNAPSHOT (C:\wip\scratch-dev\maven-import-dependency-management\pom.xml) has 1 error
      [ERROR]     Non-resolvable import POM: Could not transfer artifact org.springframework:spring-framework-bom:pom:4.0.0.R2 from/to spring-milestones (${spring.url}): No connector available to access repository spring-milestones (${spring.url}) of type default using the available factories WagonRepositoryConnectorFactory @ line 20, column 25 -> Help 2]

      mvn help:effective-pom -Prepo-will-succeed works as expected.

      Note that prior to attempting the failing resolution, the full project POM model has successfully been resolved. So the correct value for the property is known and could in theory be substituted into the repository URL before the failing import pom resolve attempt.

      Will create a Github pull request with one possible solution to this - it includes a JUnit test case.

      Note: agreed this is a contrived example. To try and give an idea of the actual use case - several development streams are setup with individual sandboxed Nexus repository holding specific version of several shared components. The repository configuration uses the pattern ${nexus.baseurl}/content/groups/${stream.name} with the properties set in settings.xml file.

      One workaround would be to create profiles for every work stream that explicitly list the full repository URL, even then the above feature would be nice to allow the ${nexus.baseurl} to avoid repeating that part.

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            jvanzyl Jason van Zyl
            markdingram Mark Ingram
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment