groovy-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Romain Manni-Bucau <rmannibu...@gmail.com>
Subject Re: MavenGrapeEngine?
Date Fri, 06 Jan 2017 14:00:39 GMT
2017-01-06 14:54 GMT+01:00 Jochen Theodorou <blackdrag@gmx.org>:

> On 06.01.2017 10:45, Romain Manni-Bucau wrote:
> [...]
>
>> I opened https://issues.apache.org/jira/browse/GROOVY-8037 to try to
>> enhance it but there are still a few questions to solve before coding:
>>
>> - does groovy prefer a snapshot hack in ivy resolution or a full
>> aether/maven resolution support?
>>
>
> being more easily able to use the Spring AetherGrapeEngine would certainly
> be good, I am not sure how the ivy file has to be changed to support
> snapshots properly. But in the end I would prefer the ivy based solution,
> since it means less dependencies for groovy itself.
>
>
Means SNAPSHOT patterns needs to be identified (likely a flag in the
@Grab(snapshot=true)?) and groovy should clean up the artifacts before
resolving to avoid to let ivy mess up its repo. For maven based artifact it
also means you run copies instead of maven repository ones which is leading
to unexpected runtime sometimes.


> - what kind of SPI groovy would use (ATM GrapeEngine lookup is quite
>> hardcoded): do we want a config in groovy installation + system property?
>>
>
> would someone want to define the engine as part of the annotation or
> should this be automatic in the background? We could also think of using
> the Java service provider interface logic - of course then we have to think
> about what to do if multiple engines are there
>
>
sounds good in @Grab with probably a default globally settable in the
script.


> - if we want another engine: how do we manage dependencies? do we
>> isolate them from groovy libs?
>>
>
> they should be optional for the delivery.... and in the light of that I
> think depending on spring-boot-cli is an option
>

Alternative is to implement it in groovy without maven in a light fashion,
with
https://github.com/apache/tomee/blob/master/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/MavenResolver.java
and
https://github.com/apache/tomee/blob/master/container/openejb-loader/src/main/java/org/apache/openejb/loader/provisining/HttpResolver.java
you can resolve most of maven artifacts. This code needs to be reworked on
its config side cause it is specific to tomee but my point is in < 400 LOC
you can get a maven resolver you own and therefore supporting snapshots is
very doable there.


>
> bye Jochen
>

Mime
View raw message