-
Notifications
You must be signed in to change notification settings - Fork 168
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
(feat) Maven plugin improvements #20695
base: main
Are you sure you want to change the base?
Conversation
Make everything accessible/overrideable downstram
Yes not everyone is using Eclipse or want's to have Eclipse specific dependencies...
This check is only needed once during migration and never again.
* Reflector now uses a Builder-like pattern and can be replaced with a custom implementation if required * Default implementation only includes/scans only actually used dependencies and not everything else. Special customization may still be required for certain projects * Replaced``getOrCreateReflector`` with ``getClassFinder`` * Removed some unused methods * Simplified and extended logging
|
Awesome @AB-xdev 👏 Does this also fix performance regressions in the development mode 🤔 |
@mstahv We only changed the Maven Plugin and nothing noteworthy of the |
aka a (bit early) Christmas present from XDEV to Vaadin 🎄
Description
This PR reworks the Vaadin Maven Plugin to improve performance.
The changes primarily target the
prepare-
andbuild-frontend
goals (all other goals are irrelevant for us) and are based on some experimental changes we have done in internal projects.Fixes #19596
Fixes #20359
Overview of the changes:
If you combine this situation with frequent (re)builds due to e.g. not a good working IDEs, this results in further problems like increased coffee consumption in between builds.
The improvement here is to only scan Vaadin dependencies by default.
The user can further customize and include/exclude certain dependencies if they want.
org.codehaus.plexus.build.BuildContext
optional (not everyone uses Eclipse ;) )Example configuration
In a example project (with ~40k LoC and ~150 dependencies) with above configuration we now have the following times:
prepare-frontend
build-frontend
Type of change
Checklist
Fixed existing tests so that they work. Feel free to add more tests if you like.
There seem to be some tests that don't work locally, e.g.:
[main] ERROR com.vaadin.flow.server.frontend.FrontendToolsLocator - Failed to execute the command '[C:\Program Files\maven\apache-maven-3.9.8\bin\mvn, -v]' java.io.IOException: Cannot run program "C:\Program Files\maven\apache-maven-3.9.8\bin\mvn": CreateProcess error=193, %1 ist keine zulässige Win32-Anwendung
orDefaultInstantiatorI18NTest.translationFileOnClasspath_instantiateDefaultI18N:122 expected:<[Default lang]> but was:<[deutsch]>
Additional for
Feature
type of changePS: