Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

get rid of mvn and use jar-dependency to resolve //DEPS #49

Closed
holgerbrandl opened this issue Nov 2, 2017 · 12 comments
Closed

get rid of mvn and use jar-dependency to resolve //DEPS #49

holgerbrandl opened this issue Nov 2, 2017 · 12 comments

Comments

@holgerbrandl
Copy link
Collaborator

E.g. https://www.eclipse.org/proposals/technology.aether/

@stephenbmfj
Copy link
Contributor

Aether seems to be dead. Groovy Grape use Ivy to do it. (https://github.com/groovy/groovy-core/blob/master/src/main/groovy/grape/GrapeIvy.groovy)

@holgerbrandl
Copy link
Collaborator Author

Or we could use https://github.com/kohesive/keplin

@gildor
Copy link
Contributor

gildor commented Nov 6, 2017

Keplin uses aether under the hood.
Grape also updated last time 3 years ago, later than Aether but still not under active development.
Also, even Gradle uses Aether for maven (at least for publication, as I see, but cannot be sure).

Maybe make sense to ask an advice for someone from Gradle team. But Aether still looks like a good option and better than standalone mvn

@holgerbrandl
Copy link
Collaborator Author

Thanks for the info and the codepointer @gildor.

@gildor
Copy link
Contributor

gildor commented Nov 6, 2017

Also, would be good if Aether (or other implementation) could reuse local .m2 cache to prevent dependency downloading only for script

@gildor
Copy link
Contributor

gildor commented Jan 9, 2018

@holgerbrandl I've started working on Aether integration in my fork and now have early proof of concept that passes all the tests. I should clean up and probably refactor dependency resolution and tests.

Did you consider something about this feature? Maybe you have some different plans

If you still think that this is a good idea I can continue work to have production-ready prototype

@holgerbrandl
Copy link
Collaborator Author

That's really exciting news! We just have to integrate it carefully to avoid breaking user-installations. There are some dependency tests already, but I'm not sure if they really cover the full spectrum of use-cases yet.

Only considerations from my end

Never touched but still on the list are also dependency exclusions #12

How much does the shadow jar grow by adding aether?

@gildor
Copy link
Contributor

gildor commented Jan 9, 2018

@holgerbrandl

maintain option to allow for custom artifact repos

Yes, custom repos already supported

maintain artifact download reporting

I have some logs already, no progress tho, just message about artifact downloading

dependency exclusions

Shouldn't be a problem, Aether supports exclusion

How much does the shadow jar grow by adding aether

I'm not sure now, currently, I use some third party libs for fast implementation, but I plan to get rid of them and use only minimal set. But will report later

@holgerbrandl
Copy link
Collaborator Author

We don't have detailed logging at the moment. Just something like
Started downloading log4j_3.2 .... Done
and so on. See https://github.com/holgerbrandl/kscript/blob/master/src/main/kotlin/kscript/app/DependencyUtil.kt#L116

Anything more detailed is likely to be more annoying than useful. I just added it to avoid the impression that kscript is stuck, while it is resolving dependencies internally.

@andreas-mausch
Copy link
Contributor

What's the status here? Can I see @gildor's the code somewhere?

andreas-mausch added a commit to andreas-mausch/kscript that referenced this issue Sep 7, 2018
@andreas-mausch
Copy link
Contributor

I'm impatient and started an implementation. Tests are green, haven't checked compatibility for the dependency_cache yet tho. See PR #159

@holgerbrandl
Copy link
Collaborator Author

Duplicate of #159

@holgerbrandl holgerbrandl marked this as a duplicate of #159 Oct 29, 2018
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

No branches or pull requests

4 participants