Mark Ingram created MNG-5639:
--------------------------------
Summary: Support resolution of Import Scope POMs from Repo that
contains a ${parameter}
Key: MNG-5639
URL: https://jira.codehaus.org/browse/MNG-5639
Project: Maven 2 & 3
Issue Type: Improvement
Components: Dependencies
Affects Versions: 3.2.1
Reporter: Mark Ingram
Priority: Minor
Attachments: pom.xml
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.
--
This message was sent by Atlassian JIRA
(v6.1.6#6162)