Sorry I didn't see Daz already replied :) Ignore my request!

On Fri, Aug 5, 2011 at 11:31 PM, Szczepan Faber <[email protected]> wrote:

> It's a bug. I haven't seen a jira issue that describes this problem so can
> file this? There're some issues with classifiers which we're about tackle
> soon.
>
> Cheers!
>
>
> On Fri, Aug 5, 2011 at 4:45 PM, enrico <[email protected]> wrote:
>
>> Hi all,
>>
>> It seems to me, that eclipse plugin doesn't respect the dependencies'
>> classifier, taking only the last declared dependency for the given
>> group, artifact id and version.
>>
>> In a project of mine the build.gradle file contains this dependencies
>> block:
>>
>> dependencies {
>>    compile 'org.apache.httpcomponents:httpclient:4.0.1'
>>    testCompile 'org.apache.httpcomponents:httpclient:4.0.1:tests'
>> }
>>
>> after gradle eclipse
>>
>> $ cat .classpath
>> <?xml version="1.0" encoding="UTF-8"?>
>> <classpath>
>>        <classpathentry kind="output" path="bin"/>
>>        <classpathentry kind="src" path="src/main/java"/>
>>        <classpathentry kind="src" path="src/test/java"/>
>>        [... httpclient deps as commons-logging etc...]
>>        <classpathentry kind="lib"
>>
>> path="/path/to/.gradle/cache/org.apache.httpcomponents/httpclient/jars/httpclient-4.0.1-tests.jar"
>> exported="true"/>
>> </classpath>
>>
>> If I change to:
>>
>> dependencies {
>>    compile 'org.apache.httpcomponents:httpclient:4.0.1',
>>            'org.apache.httpcomponents:httpclient:4.0.1:tests'
>>    testCompile 'org.apache.httpcomponents:httpclient:4.0.1',
>>                'org.apache.httpcomponents:httpclient:4.0.1:tests'
>> }
>>
>> after gradle eclipse the.classpath file contains only the entry for
>> 'org.apache.httpcomponents:httpclient:4.0.1:tests' (and its
>> dependencies):
>>
>> $ cat .classpath
>> <?xml version="1.0" encoding="UTF-8"?>
>> <classpath>
>>        <classpathentry kind="output" path="bin"/>
>>        <classpathentry kind="src" path="src/main/java"/>
>>        <classpathentry kind="src" path="src/test/java"/>
>>        [... httpclient deps as commons-logging etc...]
>>        <classpathentry kind="lib"
>>
>> path="/path/to/.gradle/cache/org.apache.httpcomponents/httpclient/jars/httpclient-4.0.1-tests.jar"
>> exported="true"/>
>> </classpath>
>>
>> if I change the order
>>
>> dependencies {
>>    compile 'org.apache.httpcomponents:httpclient:4.0.1:tests',
>>            'org.apache.httpcomponents:httpclient:4.0.1'
>>    testCompile 'org.apache.httpcomponents:httpclient:4.0.1:tests',
>>                'org.apache.httpcomponents:httpclient:4.0.1'
>> }
>>
>> .classpath contains only the entry for
>> 'org.apache.httpcomponents:httpclient:4.0.1'
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <classpath>
>>        <classpathentry kind="output" path="bin"/>
>>        <classpathentry kind="src" path="src/main/java"/>
>>        <classpathentry kind="src" path="src/test/java"/>
>>        [...]
>>        <classpathentry kind="lib"
>>
>> path="/path/to/.gradle/cache/org.apache.httpcomponents/httpclient/jars/httpclient-4.0.1.jar"
>> exported="true"/>
>> </classpath>
>>
>> A workaround is to use the @jar notation but this way you have to
>> specify "transitive=true" to have httpclient dependencies entries.
>>
>> dependencies {
>>    compile 'org.apache.httpcomponents:httpclient:4.0.1@jar'
>>    testCompile 'org.apache.httpcomponents:httpclient:4.0.1:tests@jar'
>> }
>>
>> after gradle eclipse (note no httpclient dependency has entry):
>>
>> $ cat .classpath
>> <?xml version="1.0" encoding="UTF-8"?>
>> <classpath>
>>        <classpathentry kind="output" path="bin"/>
>>        <classpathentry kind="src" path="src/main/java"/>
>>        <classpathentry kind="src" path="src/test/java"/>
>>        <classpathentry kind="con"
>> path="org.eclipse.jdt.launching.JRE_CONTAINER" exported="true"/>
>>        <classpathentry kind="lib"
>>
>> path="/path/to/.gradle/cache/org.apache.httpcomponents/httpclient/jars/httpclient-4.0.1-tests.jar"
>> exported="true"/>
>>        <classpathentry kind="lib"
>>
>> path="/path/to/.gradle/cache/org.apache.httpcomponents/httpclient/jars/httpclient-4.0.1.jar"
>> exported="true"/>
>> </classpath>
>>
>> I've the expected result using:
>>
>> dependencies {
>>    compile ('org.apache.httpcomponents:httpclient:4.0.1@jar') {
>>        transitive = true
>>    }
>>    testCompile 'org.apache.httpcomponents:httpclient:4.0.1:tests@jar'
>> }
>>
>> $ cat .classpath
>> <?xml version="1.0" encoding="UTF-8"?>
>> <classpath>
>>        <classpathentry kind="output" path="bin"/>
>>        <classpathentry kind="src" path="src/main/java"/>
>>        <classpathentry kind="src" path="src/test/java"/>
>>        <classpathentry kind="con"
>> path="org.eclipse.jdt.launching.JRE_CONTAINER" exported="true"/>
>>        <classpathentry kind="lib"
>>
>> path="/path/to/.gradle/cache/commons-codec/commons-codec/jars/commons-codec-1.3.jar"
>> exported="true"/>
>>        <classpathentry kind="lib"
>>
>> path="/path/to/.gradle/cache/org.apache.httpcomponents/httpcore/jars/httpcore-4.0.1.jar"
>> exported="true"/>
>>        <classpathentry kind="lib"
>>
>> path="/path/to/.gradle/cache/commons-logging/commons-logging/jars/commons-logging-1.1.1.jar"
>> exported="true"/>
>>        <classpathentry kind="lib"
>>
>> path="/path/to/.gradle/cache/org.apache.httpcomponents/httpclient/jars/httpclient-4.0.1-tests.jar"
>> exported="true"/>
>>        <classpathentry kind="lib"
>>
>> path="/path/to/.gradle/cache/org.apache.httpcomponents/httpclient/jars/httpclient-4.0.1.jar"
>> exported="true"/>
>> </classpath>
>>
>> Is this behaviour correct and am I missing something obvious?
>>
>> Thanks,
>> Enrico
>>
>> ---------------------------------------------------------------------
>> To unsubscribe from this list, please visit:
>>
>>    http://xircles.codehaus.org/manage_email
>>
>>
>>
>
>
> --
> Szczepan Faber
> Principal engineer@gradleware
> Lead@mockito
>



-- 
Szczepan Faber
Principal engineer@gradleware
Lead@mockito

Reply via email to