On 5 Aug 2014, at 10:03 am, Lóránt Pintér <lorant.pin...@gmail.com> wrote:

> Hi,
> 
> With eachDependency { … } it was not possible to replace an external 
> dependency with a project dependency. Will this be possible with this 
> notation?

Not initially, but that’s the eventual plan. It’s not quite so simple because 
external -> project dependency replacement also need the task graph to be 
modified, whereas external -> external replacement does not.


> It would be awesome if this was possible.
> 
> -- 
> Lóránt
> 
> On Monday 4 August 2014 at 11:30, Szczepan Faber wrote:
> 
>> Thanks Daz for input! Is the implementation of version-selection rules
>> happening soon?
>> 
>> It looks like that we're getting to consensus regarding the API:
>> 
>> dependencies {
>> components {
>> modules(moduleSelectorNotation) { detailsObject ->
>> detailsObject.replacedBy(moduleSelectorNotation)
>> }
>> }
>> }
>> 
>> 1. I'm curious if there is a plan to align dependency resolve rules
>> and version selection rules in some way?
>> 2. Do we want to use an existing imperative API
>> "dependencies.components.eachComponent" as a way to pass down the
>> 'replacedBy' declarations to the resolution algorithm? E.g.
>> declarative data 'dependencies.components.modules' would form one of
>> the 'eachComponent' rules behind the hood. Based on Adam's feedback, I
>> assume that we _don't_ want to do this.
>> 
>> Cheers!
>> 
>> On Sun, Aug 3, 2014 at 11:09 PM, Daz DeBoer
>> <darrell.deb...@gradleware.com> wrote:
>>> 
>>> 
>>> 
>>> On Fri, Aug 1, 2014 at 5:18 AM, Szczepan Faber <szcze...@gmail.com> wrote:
>>>> 
>>>> 
>>>> b) I would add some higher level api that would use a). For example:
>>>> 
>>>> dependencies {
>>>> components {
>>>> 
>>>> modules("com.google.collections:google-collections").deprecatedBy("com.google.guava:guava")
>>>> //or replacedBy(), supersededBy()
>>>> }
>>>> }
>>>> 
>>>> Thoughts?
>>> 
>>> We're designing a similar DSL for targeting version-selection rules to a
>>> particular module or set of modules
>>> (https://github.com/gradle/gradle/blob/master/design-docs/component-metadata.md#story-build-script-targets-versionselection-rule-to-particular-module).
>>> 
>>> I'm not sold on that DSL, but we do need a way to say "this block applies to
>>> _all_ modules".
>>> 
>>> I guess we can either choose to use a string-based selector for choosing the
>>> modules that apply:
>>> 
>>> dependencies {
>>> components/versions/some-other-rule-type {
>>> modules('*') {
>>> }
>>> modules('com.google.guava:*') {
>>> }
>>> modules('com.google.guava:guava') {
>>> }
>>> }
>>> 
>>> Or use explicit parameters:
>>> 
>>> dependencies {
>>> components/versions/some-other-rule-type {
>>> allModules {
>>> }
>>> group('com.google.guava') {
>>> }
>>> group('com.google.guave').name('guava') {
>>> }
>>> }
>>> 
>>> I think I prefer the first approach. But we should definitely aim for
>>> consistency here.
>>> --
>>> 
>>> Darrell (Daz) DeBoer
>>> http://www.gradleware.com
>> 
>> 
>> 
>> --
>> Szczepan Faber
>> Core dev@gradle; Founder@mockito
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe from this list, please visit:
>> 
>> http://xircles.codehaus.org/manage_email
> 


--
Adam Murdoch
Gradle Co-founder
http://www.gradle.org
CTO Gradleware Inc. - Gradle Training, Support, Consulting
http://www.gradleware.com



Reply via email to