fix: fix addParentPoms=true causes repositories to be ignored.#1585
Merged
Conversation
k-wall
commented
Feb 4, 2026
Contributor
Author
|
Anyone? |
Contributor
Author
|
I would really like to see this issue resolved, would any commiter be able to comment please? |
| ProjectBuildingRequest buildingRequest = | ||
| new DefaultProjectBuildingRequest(session.getProjectBuildingRequest()); | ||
| buildingRequest.setProcessPlugins(false); | ||
| if (getProject().getRemoteArtifactRepositories() != null |
Member
There was a problem hiding this comment.
getProject().getRemoteArtifactRepositories() it should be never null
Signed-off-by: Keith Wall <kwall@apache.org>
32566ad to
2073584
Compare
| new DefaultProjectBuildingRequest(session.getProjectBuildingRequest()); | ||
| buildingRequest.setProcessPlugins(false); | ||
| if (getProject().getRemoteArtifactRepositories() != null | ||
| && !getProject().getRemoteArtifactRepositories().isEmpty()) { |
Member
There was a problem hiding this comment.
also getProject().getRemoteArtifactRepositories() should never be empty
Member
|
@k-wall thanks, I have rebased with current muster to trigger CI build |
slawekjaranowski
approved these changes
May 16, 2026
elharo
reviewed
May 16, 2026
Contributor
elharo
left a comment
There was a problem hiding this comment.
Can there be an IT or unit test for this?
Contributor
Author
|
Great, thanks for picking up. I'll see if I can add a test. |
Member
You can look at my coments |
Add integration test to verify that when using copy-dependencies with addParentPoms=true, the plugin correctly propagates the project's remote repositories to the ProjectBuildingRequest when resolving parent POMs. The test uses the "fake-remote-repository" pattern to ensure the custom repository is NOT mirrored by MRM (Mock Repository Manager). This is critical because MRM is configured as a global mirror in src/it/mrm/settings.xml with: <mirrorOf>*,!fake-remote-repository</mirrorOf> By using id "fake-remote-repository", the repository is: - NOT mirrored by MRM - NOT inherited in the session's repository configuration - ONLY available if explicitly propagated via setRemoteRepositories() This ensures the test actually validates the fix. TEST VALIDATION: - WITHOUT fix: Test FAILS with "Could not build project" error at buildProjectFromArtifact() because fake-remote-repository is not propagated - WITH fix: Test PASSES, parent POM successfully resolved and copied Test structure (following copy-from-remote-repository pattern): - repo/: Local repository with test artifacts (test-parent, test-child) - pom.xml: Declares fake-remote-repository and dependency on test-child - setup.bsh: Cleans local cache to force fresh resolution - verify.bsh: Validates parent POM was copied to output Assisted-by: Claude Sonnet 4.5 <noreply@anthropic.com> Signed-off-by: Keith Wall <kwall@apache.org>
Remove unnecessary null and empty checks for getProject().getRemoteArtifactRepositories() as the reviewer (slawekjaranowski) noted these should never be null or empty in Maven. Signed-off-by: Keith Wall <kwall@apache.org>
Contributor
Author
|
I've added an IT and believe I have addressed the feedback. Please take another look. |
elharo
approved these changes
May 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fix for #1028 - If
addParentPomsis true, the plugin fails to respect any remote repositories declared in the POM leading to a build failure when resolving artefacts that do not exist in Maven Central.When the failure occurs, it fails as follows. (Note: In this case the org.apache.kafka:kafka-clients:pom:4.2.0 is available in staging repo which is referenced in the project's POM).
This change propagates the remote repositories from the project to the
ProjectBuildingRequestused build the project for the parent artefacts. The approach was inspired by https://github.com/apache/maven-javadoc-plugin/blob/ace4fe073378474b53296bd8c7a3f4a3faa44e17/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java#L2364I don't know the Maven API well, so I'm hoping someone can give me a thumbs up that the approach is generally in the right direction. I'll then spend time adding test case(s).
Following this checklist to help us incorporate your
contribution quickly and easily:
Note that commits might be squashed by a maintainer on merge.
This may not always be possible but is a best-practice.
mvn verifyto make sure basic checks pass.A more thorough check will be performed on your pull request automatically.
mvn -Prun-its verify).If your pull request is about ~20 lines of code you don't need to sign an
Individual Contributor License Agreement if you are unsure
please ask on the developers list.
To make clear that you license your contribution under
the Apache License Version 2.0, January 2004
you have to acknowledge this by using the following check-box.