Skip to content

Install the quickstart archetype test's artifacts into target/it-repo - #1730

Open
papegaaij wants to merge 1 commit into
masterfrom
fix-verify-installs-to-local-repo
Open

papegaaij wants to merge 1 commit into
masterfrom
fix-verify-installs-to-local-repo

Conversation

@papegaaij

Copy link
Copy Markdown
Contributor

Fixes #1724

Since the quickstart archetype is tested during the build, its pom runs maven-invoker-plugin:install to give the generated project the Wicket modules it needs. Without a localRepositoryPath that goal installs into the user's own local repository, so a plain mvn verify left 17 Wicket files in ~/.m2, marked as locally installed and therefore never re-downloaded. After verifying a release candidate those were jars with the final release version built from the RC, which would silently shadow a later RC reusing the version number.

invoker:install and archetype:integration-test now share a local repository at target/it-repo, set through the archetype.test.localRepositoryPath property. The generated project resolves Wicket from there and fetches everything else through the user's normal settings, mirrors included.

The cost: a clean build downloads the integration test's third-party dependencies (about 56 MB, mostly Maven plugins) into target/it-repo again. Reading them from ~/.m2 instead would need a custom settings file for the integration test, which replaces the user's settings and so drops their mirrors and proxies.

Nothing changes for applications.

Verified with mvn clean verify -Pjs-test: green, and nothing new under ~/.m2/repository/org/apache/wicket afterwards.

This is on master only for now; the wicket-10.x backport follows separately.

🤖 Generated with Claude Code

Since the quickstart archetype is tested during the build, its pom runs
maven-invoker-plugin:install to give the generated project the Wicket
modules it needs. Without a localRepositoryPath that goal installs into
the user's own local repository, so a plain mvn verify left 17 Wicket
files in ~/.m2, marked as locally installed and therefore never
re-downloaded. After verifying a release candidate those were jars with
the final release version built from the RC, which a later RC reusing
the version number would silently be shadowed by.

invoker:install and archetype:integration-test now share a local
repository at target/it-repo. The generated project resolves Wicket
from there and fetches everything else through the user's normal
settings, mirrors included. A clean build therefore downloads the
integration test's third-party dependencies, about 56 MB, once more
into target/it-repo. Nothing changes for applications; mvn verify no
longer writes to ~/.m2.

GitHub issue #1724

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 63.17%. Comparing base (75ba768) to head (5f9b763).

Additional details and impacted files
@@             Coverage Diff              @@
##             master    #1730      +/-   ##
============================================
- Coverage     63.17%   63.17%   -0.01%     
+ Complexity    11558    11557       -1     
============================================
  Files          1253     1253              
  Lines         48635    48635              
  Branches       6844     6844              
============================================
- Hits          30725    30724       -1     
- Misses        15192    15193       +1     
  Partials       2718     2718              
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

mvn verify installs Wicket artifacts into the user's local Maven repository

2 participants