Skip to content

Conversation

@quintesse
Copy link
Contributor

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.

@maxandersen
Copy link
Collaborator

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 ?

@quintesse
Copy link
Contributor Author

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

@maxandersen
Copy link
Collaborator

is time ripe for redo on this one or wdyt?

@quintesse
Copy link
Contributor Author

Sure, the idea is still valid.

Btw, what would be the names of the artifacts? Because we already have a jbang-cli in Maven. So would that mean extracting all non-cli related things into a jbang-core (or some other name) and make jbang-cli depend on that? And jbang-cli-all would still be the "uber jar"?

@maxandersen
Copy link
Collaborator

Any reason why jbang-cli wouldn't still be the fat jar?

@quintesse
Copy link
Contributor Author

Any reason why jbang-cli wouldn't still be the fat jar?

It isn't right now either, isn't it? I see a jbang-cli.jar with a size less than 1 MB and a jbang-cli-all.jar of multiple MBs, so I just assumed the latter was the uber jar. (I never really took a look at the Maven artifacts before, so I might be understanding things wrong)

@maxandersen
Copy link
Collaborator

Ahhh sorry misunderstood you. Thought you said there would be another module.

But no all good and yes. Jbang-cli would have a fat jar

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants