jbang
jbang copied to clipboard
refactor: introduced `jbang-core` library
This is just to start up the discussion on how to go about creating a jbang library that people could use to create plugins or tools or in any other way interact with Jbang.
Right now I simply hacked the project in two: where almost all cli
code remains in the current top-level project and all the rest was moved to a new jbang-core
sub project.
It doesn't currently compile because I'm not very well-versed with Gradle, but it's 90% there I'm sure.
Also, the code hasn't been restructured in any way which means we're actually "overlaying" packages (dev.jbang.cli
exists in both projects for example) which might cause problems, especially when Java's module system gets more and more strict.
Anyway, doing it like this was about an hour's work, which means it won't be that hard to re-do this PR if/when we actually decide to go ahead with this.
it makes sense we go in this direction - i'm wondering if using something like doing the refactoring in place and use archunit to ensure we don't have any deps to cli in core packages (i.e. https://www.archunit.org/use-cases) and then do the module split after that ?
Never heard about archunit before, looks cool and could be useful indeed.