Fixed IT subprocess Maven resolution to use the active build's Maven binary - #2093
Open
sajeerzeji wants to merge 2 commits into
Open
sajeerzeji wants to merge 2 commits into
sajeerzeji wants to merge 2 commits into
Conversation
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.
Integration tests that hardcoded mvn as a subprocess command relied on path resolution, which is not guaranteed to match the Maven binary that launched the build. This could cause tests to invoke a different Maven version, for example when using the Maven wrapper or when Maven is installed via the CI setup-maven step outside of path. This fixes the issue by forwarding maven.home from the Invoker Plugin into each IT's JVM and resolving the absolute path to the correct mvn/mvn.cmd executable at runtime. A path based fallback is retained so tests can still be run standalone outside of the invoker. Changes are limited entirely to IT test code and IT POM configurations.
Behaviour will be:
CI resolves to the Maven installed by setup-maven
Local with mvn resolves to the locally installed Maven
Local with ./mvnw resolves to the Maven wrapper distribution