mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-15 11:53:49 +07:00
during a single build this verbose logging can produce 100mb of logs purely for initiated and processed messages. this was partially handled in VMT-MR-3078 for vm-templates, but we also have these data being logged in jpsbootstrap steps of regular builds. the information is not that valuable compared to the amount of logs it produces and started/completed should be enough to investigate problematic artifacts. (cherry picked from commit b97b277fff4a9b17cc74e81769a5c4814ec3f8a9) IJ-CR-172487 GitOrigin-RevId: 94bc0591ae6e6e6c4102058d85d56c233e23c2be
jps-bootstrap
jps-bootstrap: a small utility that loads JPS project, compiles it, and runs any class from it.
It tries very hard to run your code that same way you'd run it from IDE's gutter.
Previous way of running build scripts
Locally: run *.gant from IDEA or via gant.xml
On buildserver: gant.xml
Downsides:
- Supports only groovy code. We're tired of groovy.
- Uses binary dependencies for JPS & Utils, which defies the monorepo approach and also creates duplicate classes in IDEA project
- Hard to generate and process build output. On buildserver it's not easy to output something correctly, the output is intercepted and processed by both TeamCity code and ant
Running build scripts via jps-bootstrap
Locally
- just run CLASS_NAME from IDEA
- run any main class (written in Java/Kotlin) from intellij project via
./jps-bootstrap.cmd MODULE_NAME CLASS_NAME ARGS
Example: ./community/platform/jps-bootstrap/jps-bootstrap.sh intellij.idea.ultimate.build DownloadLibrariesBuildTarget
Special wrappers could be written to make scripts easier, see e.g. build/downloadLibraries.cmd
On buildserver:
- Separate build compiles jps-bootstrap (only when jps-bootstrap sources are changed)
- jps-bootstrap is used to run Compile Inc (it compiles build scripts on the fly)
- On any other build, jps-bootstrap uses already compiled classes from Compile Inc