reckart opened a new issue, #459:
URL: https://github.com/apache/uima-uimaj/issues/459

   **Describe the bug**
   
   The published `uimaj-parent` POM declares an Eclipse P2 repository whose 
`<id>` is the property reference `${eclipseP2RepoId}`:
   
   ```xml
   <repository>
     <id>${eclipseP2RepoId}</id>
     <url>https://download.eclipse.org/releases/2023-06/</url>
     <layout>p2</layout>
   </repository>
   ```
   
   The `eclipseP2RepoId` property is defined in `uimaj-parent-internal`, which 
is a child of `uimaj-parent` rather than an ancestor of it. Downstream projects 
inherit `uimaj-parent` and therefore never see that property, so the repository 
id remains the literal, uninterpolated string `${eclipseP2RepoId}` in their 
effective model.
   
   Maven 3 tolerated this. Maven 4 validates remote repositories and rejects 
the uninterpolated id, so any project inheriting `uimaj-parent` fails before it 
can build:
   
   ```
   [ERROR] Internal error: java.lang.IllegalArgumentException: Invalid 
RemoteRepositories: [..., ${eclipseP2RepoId} 
(https://download.eclipse.org/releases/2023-06/, p2, releases+snapshots)]
   Caused by: java.lang.IllegalArgumentException: Not fully interpolated remote 
repository ${eclipseP2RepoId} (https://download.eclipse.org/releases/2023-06/, 
p2, releases+snapshots)
       at 
org.apache.maven.impl.resolver.validator.MavenValidator.validateRemoteRepository(MavenValidator.java:90)
   ```
   
   The P2 repository is only needed to resolve the `org.eclipse.*` bundles that 
the `uimaj-ep-*` modules build against. Downstream consumers do not need it, so 
it should not be part of the parent POM they inherit.
   
   **To Reproduce**
   
   Build any project that declares `org.apache.uima:uimaj-parent` as its parent 
using Maven 4, or inspect the published POM at 
https://repo1.maven.org/maven2/org/apache/uima/uimaj-parent/3.6.0/uimaj-parent-3.6.0.pom
 and note that the repository id is `${eclipseP2RepoId}` while no such property 
is defined in that POM or any of its ancestors.
   
   **Expected behavior**
   
   Projects inheriting `uimaj-parent` build successfully under Maven 4. The 
parent POM contains no repository declaration with an unresolvable property 
reference in its id, and does not expose the Eclipse P2 repository, which is an 
internal build concern.
   
   **Please complete the following information:**
    - Version: 3.6.0
    - Maven version: 4.0.0-rc-5
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to