Repository navigation
Compute local repository and artifact paths without a plugin - #65
Closed
slachiewicz wants to merge 1 commit into
Closed
slachiewicz wants to merge 1 commit into
slachiewicz wants to merge 1 commit into
Conversation
ToolboxExecutorTool answers localRepository(), artifactPath() and metadataPath() by running a non-ASF plugin through the Maven under test, which resolves that plugin into the local repository under test. DefaultExecutorTool computes the same answers from the request: the maven.repo.local argument, .mvn/maven.config, the system property, user and global settings, then ~/.m2/repository, and the default layout for the paths. ToolboxExecutorTool stays for dump() and as the authoritative provider. Closes #44 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 5, 2026
Migrate core ITs from maven-verifier to maven-executor (3.10.x)
apache/maven-integration-testing#446
Closed
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.
The only
ExecutorTool,ToolboxExecutorTool, answerslocalRepository(),artifactPath()andmetadataPath()by runningeu.maveniverse.maven.plugins:toolboxthrough the Maven under test, so every consumer that needs an artifact path resolves a non-ASF plugin into its test local repository (#44). This is A7 in #49, and the base that the planned test-support module (T1) buildsverifyArtifact*anddeleteArtifactson.DefaultExecutorToolcomputes the same answers without running Maven:-Dmaven.repo.local=argument of the request (the last one wins, also as-D maven.repo.local=…), the same in.mvn/maven.config, the request'smaven.repo.localJVM system property, this JVM'smaven.repo.local,<localRepository>of the user settings (-s/--settings, else~/.m2/settings.xml, with${user.home},${env.X}and system properties interpolated), of the global settings (-gs, elseconf/settings.xmlwhen the tool is given the installation), and finally~/.m2/repositoryof the request's user home. A relative path is resolved against the request's working directory.G:A[:E[:C]]:Vartifacts, including the base-version directory of timestamped snapshots, and[G]:[A]:[V]:[type]metadata with-localor-<repositoryId>inserted into the file name.dump()needs the Maven under test, so it throws;ToolboxExecutorToolstays for that and as the authoritative provider when a split repository, a custom layout or settings profiles matter. The class Javadoc says so.Tests:
DefaultExecutorToolTest: 12 unit tests for the lookup order and the layout, no Maven needed.DefaultExecutorToolMatchesToolboxTest: runs both tools on Maven 3 and Maven 4 and asserts the same local repository, artifact paths (jar, pom, classifier, snapshot, timestamped snapshot, each installed and from a remote) and metadata paths (group, artifact, version level, local and remote). It caught one difference while writing this: an installed timestamped snapshot is named after its base version, a downloaded one keeps the timestamp.mvn verifypasses for the whole reactor.module-infogainsrequires java.xmlfor reading settings. The class is@since 1.1.0, the target #49 gives A7.Closes #44
🤖 Generated with Claude Code