jbang icon indicating copy to clipboard operation
jbang copied to clipboard

refactor: introduced `jbang-core` library

Open quintesse opened this issue 3 years ago • 2 comments

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.

quintesse avatar Dec 14 '21 12:12 quintesse

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 ?

maxandersen avatar Dec 19 '21 08:12 maxandersen

Never heard about archunit before, looks cool and could be useful indeed.

quintesse avatar Dec 19 '21 23:12 quintesse