Search code examples
google-app-enginegradlewar

Gradle build : wrong jars in exploded app while gradle reports correct runtime classpath dependencies


When I list the runtime dependencies for my webapp (uses AppEngine), all looks fine:

gradle sourcing-server:dependencies --configuration runtime

koen@desktop:~/workspace/criteriabuilder$ gradle sourcing-server:dependencies --configuration runtime 
Incremental java compilation is an incubating feature.
:sourcing-server:dependencies

------------------------------------------------------------
Project :sourcing-server
------------------------------------------------------------

runtime - Runtime classpath for source set 'main'.
+--- project :sourcing-shared
|    +--- org.hibernate:hibernate-validator:4.2.0.Final
|    |    +--- javax.validation:validation-api:1.0.0.GA
|    |    \--- org.slf4j:slf4j-api:1.6.1
|    +--- com.google.gwt:gwt-servlet:2.7.0
|    +--- com.googlecode.objectify:objectify:4.0rc1
|    |    +--- com.google.guava:guava:14.0.1
|    |    +--- com.google.appengine:appengine-api-1.0-sdk:1.7.6 -> 1.9.26
|    |    \--- com.google.appengine:appengine-api-labs:1.7.6 -> 1.9.26
|    \--- com.fasterxml.jackson.core:jackson-annotations:2.4.4
+--- javax.servlet:servlet-api:2.5
+--- org.restlet.gae:org.restlet:2.3.1
|    \--- com.google.appengine:appengine-api-1.0-sdk:1.9.15 -> 1.9.26
+--- org.restlet.gae:org.restlet.ext.jackson:2.3.1
|    +--- com.fasterxml.jackson.core:jackson-core:2.4.4
|    +--- com.fasterxml.jackson.core:jackson-annotations:2.4.4
|    +--- com.fasterxml.jackson.core:jackson-databind:2.4.4
|    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.4.0 -> 2.4.4
|    |    \--- com.fasterxml.jackson.core:jackson-core:2.4.4
|    +--- com.fasterxml.jackson.dataformat:jackson-dataformat-csv:2.4.4
|    |    +--- com.fasterxml.jackson.core:jackson-core:2.4.4
|    |    \--- com.fasterxml.jackson.core:jackson-databind:2.4.4 (*)
|    +--- com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.4.4
|    |    \--- com.fasterxml.jackson.core:jackson-core:2.4.4
|    +--- com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.4.4
|    |    +--- com.fasterxml.jackson.core:jackson-core:2.4.4
|    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.4.0 -> 2.4.4
|    |    +--- com.fasterxml.jackson.core:jackson-databind:2.4.4 (*)
|    |    +--- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.4.4
|    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.4.4
|    |    |    \--- com.fasterxml.jackson.core:jackson-databind:2.4.4 (*)
|    |    \--- org.codehaus.woodstox:stax2-api:3.1.4
|    +--- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.4.4
|    |    +--- com.fasterxml.jackson.core:jackson-core:2.4.4
|    |    \--- org.yaml:snakeyaml:1.12 -> 1.13
|    +--- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.4.4 (*)
|    +--- com.fasterxml.jackson.module:jackson-module-jsonSchema:2.4.4
|    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.4.0 -> 2.4.4
|    |    +--- com.fasterxml.jackson.core:jackson-core:2.4.4
|    |    \--- com.fasterxml.jackson.core:jackson-databind:2.4.4 (*)
|    +--- org.codehaus.woodstox:woodstox-core-asl:4.3.0
|    |    +--- javax.xml.stream:stax-api:1.0-2
|    |    \--- org.codehaus.woodstox:stax2-api:3.1.4
|    +--- org.codehaus.woodstox:stax2-api:3.1.4
|    +--- org.yaml:snakeyaml:1.13
|    \--- org.restlet.gae:org.restlet:2.3.1 (*)
+--- org.restlet.gae:org.restlet.ext.gae:2.3.1
|    +--- com.google.appengine:appengine-api-1.0-sdk:1.9.15 -> 1.9.26
|    \--- org.restlet.gae:org.restlet:2.3.1 (*)
+--- org.restlet.gae:org.restlet.ext.gwt:2.3.1
|    +--- com.google.gwt:gwt-servlet:2.3.0 -> 2.7.0
|    +--- org.restlet.gae:org.restlet:2.3.1 (*)
|    \--- org.restlet.gae:org.restlet.ext.servlet:2.3.1
|         \--- org.restlet.gae:org.restlet:2.3.1 (*)
+--- org.restlet.gae:org.restlet.ext.json:2.3.1
|    +--- org.restlet.gae:org.restlet.lib.org.json:2.0
|    \--- org.restlet.gae:org.restlet:2.3.1 (*)
+--- org.restlet.gae:org.restlet.ext.gson:2.3.1
|    +--- com.google.code.gson:gson:2.3.1
|    +--- joda-time:joda-time:2.3
|    \--- org.restlet.gae:org.restlet:2.3.1 (*)
+--- org.apache.commons:commons-lang3:3.1
+--- com.google.api-client:google-api-client-appengine:1.20.0
|    +--- com.google.oauth-client:google-oauth-client-appengine:1.20.0
|    |    +--- com.google.http-client:google-http-client-appengine:1.20.0
|    |    |    \--- com.google.http-client:google-http-client:1.20.0
|    |    |         +--- com.google.code.findbugs:jsr305:1.3.9
|    |    |         \--- org.apache.httpcomponents:httpclient:4.0.1
|    |    |              +--- org.apache.httpcomponents:httpcore:4.0.1
|    |    |              +--- commons-logging:commons-logging:1.1.1
|    |    |              \--- commons-codec:commons-codec:1.3
|    |    +--- com.google.oauth-client:google-oauth-client:1.20.0
|    |    |    +--- com.google.http-client:google-http-client:1.20.0 (*)
|    |    |    \--- com.google.code.findbugs:jsr305:1.3.9
|    |    +--- com.google.oauth-client:google-oauth-client-servlet:1.20.0
|    |    |    +--- com.google.oauth-client:google-oauth-client:1.20.0 (*)
|    |    |    +--- com.google.http-client:google-http-client-jdo:1.20.0
|    |    |    |    +--- com.google.http-client:google-http-client:1.20.0 (*)
|    |    |    |    \--- javax.jdo:jdo2-api:2.3-eb
|    |    |    |         \--- javax.transaction:transaction-api:1.1
|    |    |    +--- javax.servlet:servlet-api:2.5
|    |    |    \--- javax.jdo:jdo2-api:2.3-eb (*)
|    |    \--- javax.servlet:servlet-api:2.5
|    +--- com.google.api-client:google-api-client:1.20.0
|    |    +--- com.google.oauth-client:google-oauth-client:1.20.0 (*)
|    |    +--- com.google.http-client:google-http-client-jackson2:1.20.0
|    |    |    +--- com.google.http-client:google-http-client:1.20.0 (*)
|    |    |    \--- com.fasterxml.jackson.core:jackson-core:2.1.3 -> 2.4.4
|    |    \--- com.google.guava:guava-jdk5:13.0
|    +--- com.google.api-client:google-api-client-servlet:1.20.0
|    |    +--- com.google.oauth-client:google-oauth-client-servlet:1.20.0 (*)
|    |    +--- com.google.api-client:google-api-client:1.20.0 (*)
|    |    +--- javax.servlet:servlet-api:2.5
|    |    \--- javax.jdo:jdo2-api:2.3-eb (*)
|    \--- com.google.http-client:google-http-client-appengine:1.20.0 (*)
+--- com.google.apis:google-api-services-oauth2:v2-rev96-1.20.0
|    \--- com.google.api-client:google-api-client:1.20.0 (*)
\--- org.slf4j:slf4j-jdk14:1.6.1
     \--- org.slf4j:slf4j-api:1.6.1

(*) - dependencies omitted (listed previously)

BUILD SUCCESSFUL

But the jars in build/exploded-app/WEB-INF/lib are very different (and so I run into version problems!).

  • I have a mixup of GAE libraries 1.9.25 and 1.9.26
  • For the Google API libraries, there is version 1.16.0 and 1.20.0 present.
  • And a problem with jackson-core.

How can this result be different from the output of above command?

koen@desktop:~/workspace/criteriabuilder$ ls server/build/exploded-app/WEB-INF/lib/
appengine-api-1.0-sdk-1.9.26.jar                   jackson-annotations-2.4.4.jar
appengine-api-1.0-sdk-1.9.5.jar                    jackson-core-2.1.3.jar
appengine-api-labs-1.9.26.jar                      jackson-core-2.4.4.jar
appengine-api-labs.jar                             jackson-core-asl-1.9.11.jar
appengine-endpoints-deps.jar                       jackson-databind-2.4.4.jar
appengine-endpoints.jar                            jackson-dataformat-csv-2.4.4.jar
appengine-jsr107cache-1.9.5.jar                    jackson-dataformat-smile-2.4.4.jar
appengine-remote-api.jar                           jackson-dataformat-xml-2.4.4.jar
commons-codec-1.3.jar                              jackson-dataformat-yaml-2.4.4.jar
commons-lang3-3.1.jar                              jackson-mapper-asl-1.9.3.jar
commons-logging-1.1.1.jar                          jackson-module-jaxb-annotations-2.4.4.jar
google-api-client-1.16.0-rc.jar                    jackson-module-jsonSchema-2.4.4.jar
google-api-client-1.20.0.jar                       jdo2-api-2.3-eb.jar
google-api-client-appengine-1.16.0-rc.jar          joda-time-2.3.jar
google-api-client-appengine-1.20.0.jar             jsr107cache-1.1.jar
google-api-client-servlet-1.16.0-rc.jar            jsr305-1.3.9.jar
google-api-client-servlet-1.20.0.jar               objectify-4.0rc1.jar
google-api-services-oauth2-v2-rev69-1.16.0-rc.jar  org.json.jar
google-api-services-oauth2-v2-rev96-1.20.0.jar     org.restlet-2.3.1.jar
google-http-client-1.16.0-rc.jar                   org.restlet.ext.gae-2.3.1.jar
google-http-client-1.20.0.jar                      org.restlet.ext.gae.jar
google-http-client-appengine-1.16.0-rc.jar         org.restlet.ext.gson-2.3.1.jar
google-http-client-appengine-1.20.0.jar            org.restlet.ext.gwt-2.3.1.jar
google-http-client-gson-1.16.0-rc.jar              org.restlet.ext.gwt.jar
google-http-client-jackson-1.16.0-rc.jar           org.restlet.ext.jackson-2.3.1.jar
google-http-client-jackson2-1.16.0-rc.jar          org.restlet.ext.jackson.jar
google-http-client-jackson2-1.20.0.jar             org.restlet.ext.json-2.3.1.jar
google-http-client-jdo-1.20.0.jar                  org.restlet.ext.json.jar
google-oauth-client-1.16.0-rc.jar                  org.restlet.ext.net.jar
google-oauth-client-1.20.0.jar                     org.restlet.ext.servlet-2.3.1.jar
google-oauth-client-appengine-1.16.0-rc.jar        org.restlet.ext.servlet.jar
google-oauth-client-appengine-1.20.0.jar           org.restlet.jar
google-oauth-client-servlet-1.16.0-rc.jar          org.restlet.lib.org.json-2.0.jar
google-oauth-client-servlet-1.20.0.jar             servlet-api-2.5.jar
gson-2.1.jar                                       slf4j-api-1.6.1.jar
gson-2.3.1.jar                                     slf4j-jdk14-1.6.1.jar
guava-14.0.1.jar                                   snakeyaml-1.13.jar
guava-14.0-rc2.jar                                 sourcing-shared-2015-01.jar
guava-jdk5-13.0.jar                                stax2-api-3.1.4.jar
gwt-servlet-2.7.0.jar                              stax-api-1.0-2.jar
gwt-servlet.jar                                    transaction-api-1.1.jar
hibernate-validator-4.2.0.Final.jar                validation-api-1.0.0.GA.jar
httpclient-4.0.1.jar                               woodstox-core-asl-4.3.0.jar
httpcore-4.0.1.jar                                 xpp3-1.1.4c.jar

Solution

  • Well, there were jar files left in src/main/webapp/WEB-INF/lib from the pre-Gradle setup of the project.

    These older libraries get copied over during build.