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
