Open coolya opened 5 years ago
What is the difference between the RCP and packaging projects?
One is for assembling individual plugins while the other includes stuff like the branding, right?
Yes right, the packing job would package the plugins in a format that you can upload to they nexus or to plugins.jetbrains.com
And the RCP would really build a RCP with branding and MPS parts etc.
Maybe it would make sense to have two templates in the repository one that is really simple without a RCP that uses the monolithic approach. This could be useful for small projects or plugins that are distributed for MPS. And a second one that uses the modular approach. Which is more useful for projects that build a full blown RCP etc.
Maintaining both shouldn‘t be that much more effort I guess.
We should take decision how we want the build layout to look like. In general there are two ways we could go:
build.gradle
at the top level that contains everythingmonolithic layout
Easier to understand because every thing is in a single file. Not even much knowledge about how gradle projects and their dependencies work is required to understand the build. It's simply a single script with a bunch of tasks and dependencies.
While it looks easy to understand at first glance it can be hard to understand at some pointer because these layouts tend to get messy. When you have a 500+ line build script things might be hard to understand as well.
modular build
Might be frighting to people with no gradle knowledge. Things can seem like magic because everything is in different files.
Much cleaner and small build scripts with a clear focus. They only declare dependencies and apart from the have single purpose they act on.
We would need at least this individual build projects: