javavscode
javavscode copied to clipboard
Project initialisation "priming" is too slow/inefficient for large projects
When opening a large Java project in VSCode, this plugin takes an excessively long time to initialise. This appears to be because for each Maven module all dependent modules are compiled with all tests run and even Javadoc generated. In the VSCode UI this is shown as "Priming X: Y maven-goal" in the status bar. For large projects running all tests could take hours for a single module. The plugin is almost entirely unusable during this time (e.g. basic linting functionality does not work) and because it would take such a long time to initialise, the plugin cannot be used with these projects at all.
The same Maven module looks to be processed multiple times over if it is a dependency of another module. If this is happening, then it would significantly worsen this problem. For example, with the following Maven architecture, module A is compiled 3 separate times (once for itself and then unnecessarily again for modules B & C):
- Module A (no internal dependencies)
- Module B (depends on A)
- Module C (depends on A)
Steps to Reproduce
- Open a large Java project in VSCode. E.g. gchq/Gaffer with 170k LOC and many internal dependencies.
- Observe the project initialization process and the "priming" notification. For each module it will show "Priming current-module: dependent-module maven-goal" for all applicable maven goals (which seem to be those triggered by
maven install). - Note that linting does not work until the above step is complete.
Expected Behaviour The plugin should be able to initialise without compiling modules multiple times and without running maven goals which are not required (e.g. tests, javadoc, packaging).
Proposed Solution Fix the "priming" process to not repeat itself for module dependencies and to only perform compilation - not run all Maven goals. Note that the other Java plugin for VSCode initialises vastly quicker on the same large project.
Hi folks, I am facing the same issue. Any updates on this?
cc: @sid-srini @Achal1607 @shivam71
I have the same issue on my project, the startup is very slow.