Hi,
I recently upgraded a large application to "spring boot 1.5.3" and since the upgrade we had a runtime issue with the JSON Lib (org.json) pulled in by "spring-boot 1.5.3 RELEASE". There was no issue with compiling / building but at runtime certain calls to "com.json.JSONObject" threw a error like this:
_org.json.JSONObject.putOnce(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
After spending alot of time debugging the issue was found to be with spring-boot-starter-test pulling in "android-json" (com.vaadin.external.google). This also has a JSONObject with fully qualified name "com.json.JSONObject" but not the same methods. It was this JSON object that was getting used at runtime and was causing the method not found errors.
We got around the problem by exluding "android-json" from "spring-boot-starter-test" but I suggest it should not be included by default so as to avoid this kind of issue for others.
Thanks, William
Comment From: philwebb
Do you have a complete stacktrace? It looks like this is a similar issue to #8706 and I'm curious if you're also using JsonFluentAssert?
Unfortunately the org.json library has a very unhelpful "don't be evil" clause in its license (see #5929 for background) which causes legal issues for many users. The android-json project is a clean room implementation that has a standard open source license. Many projects are gradually migrating to the android version but unfortunately there are a few compatibility issues.
We can't just drop the dependency because some of our own JSON test utilities require it.
Comment From: philwebb
Since this is the second time this issue has been raised we should look to see if we can add some more documentation at least.
Comment From: wilkinsona
How about a TestExecutionListener that checks for multiple occurrences of JSONObject and warns you? Something like this:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot ::
2017-06-06 15:44:27.595 INFO 21071 --- [ main] c.e.DuplicateJsonObjectApplicationTests : Starting DuplicateJsonObjectApplicationTests on aw-rmbp.home with PID 21071 (started by awilkinson in /Users/awilkinson/dev/workspaces/spring/spring-boot/1.5.x/gh-9398)
2017-06-06 15:44:27.596 INFO 21071 --- [ main] c.e.DuplicateJsonObjectApplicationTests : No active profile set, falling back to default profiles: default
2017-06-06 15:44:27.620 INFO 21071 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@13c10b87: startup date [Tue Jun 06 15:44:27 BST 2017]; root of context hierarchy
2017-06-06 15:44:27.975 INFO 21071 --- [ main] c.e.DuplicateJsonObjectApplicationTests : Started DuplicateJsonObjectApplicationTests in 0.581 seconds (JVM running for 1.09)
2017-06-06 15:44:27.978 WARN 21071 --- [ main] DuplicateJsonObjectTestExecutionListener :
Found multiple occurrences of org.json.JSONObject on the class path:
jar:file:/Users/awilkinson/.m2/repository/org/json/json/20140107/json-20140107.jar!/org/json/JSONObject.class
jar:file:/Users/awilkinson/.m2/repository/com/vaadin/external/google/android-json/0.0.20131108.vaadin1/android-json-0.0.20131108.vaadin1.jar!/org/json/JSONObject.class
You may wish to exclude one of them to ensure predictable runtime behaviour
2017-06-06 15:44:28.006 INFO 21071 --- [ Thread-2] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@13c10b87: startup date [Tue Jun 06 15:44:27 BST 2017]; root of context hierarchy
Comment From: johnjaylward
You also have the option to extend the android-json implementation to have the same API. In fact, I did so the other day to extend the JSONException class to have the full constructor list. It was pretty easy to contribute to. Myself, being deep into the JSON-Java code am wary of doing much implementation in Android-json, but others who have not spent much time on either code base shouldn't have an issue bringing the android API up to date.
Comment From: SollyTaylor
IMHO, there is indeed a procedure to tackle this problem:
1. mvn dependency: tree > dep.log to detect the vaadin dependencies, for example in my project, the dep.log held:
[[1;34mINFO[m] Scanning for projects...
[[1;34mINFO[m]
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m] [1mBuilding barcoder 0.9.42[m
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m]
[[1;34mINFO[m] [1m--- [0;32mmaven-dependency-plugin:2.10:tree[m [1m(default-cli)[m @ [36mbarcoder[0;1m ---[m
[[1;34mINFO[m] com.aossci:barcoder:jar:0.9.42
[[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter:jar:1.5.7.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot:jar:1.5.7.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-autoconfigure:jar:1.5.7.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-starter-logging:jar:1.5.7.RELEASE:compile
[[1;34mINFO[m] | | +- ch.qos.logback:logback-classic:jar:1.1.11:compile
[[1;34mINFO[m] | | | \- ch.qos.logback:logback-core:jar:1.1.11:compile
[[1;34mINFO[m] | | +- org.slf4j:jcl-over-slf4j:jar:1.7.25:compile
[[1;34mINFO[m] | | +- org.slf4j:jul-to-slf4j:jar:1.7.25:compile
[[1;34mINFO[m] | | \- org.slf4j:log4j-over-slf4j:jar:1.7.25:compile
[[1;34mINFO[m] | +- org.springframework:spring-core:jar:4.3.11.RELEASE:compile
[[1;34mINFO[m] | \- org.yaml:snakeyaml:jar:1.17:runtime
[[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter-test:jar:1.5.7.RELEASE:test
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-test:jar:1.5.7.RELEASE:test
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-test-autoconfigure:jar:1.5.7.RELEASE:test
[[1;34mINFO[m] | +- com.jayway.jsonpath:json-path:jar:2.2.0:test
[[1;34mINFO[m] | | \- net.minidev:json-smart:jar:2.2.1:test
[[1;34mINFO[m] | | \- net.minidev:accessors-smart:jar:1.1:test
[[1;34mINFO[m] | | \- org.ow2.asm:asm:jar:5.0.3:test
[[1;34mINFO[m] | +- org.assertj:assertj-core:jar:2.6.0:test
[[1;34mINFO[m] | +- org.mockito:mockito-core:jar:1.10.19:test
[[1;34mINFO[m] | | \- org.objenesis:objenesis:jar:2.1:test
[[1;34mINFO[m] | +- org.hamcrest:hamcrest-core:jar:1.3:test
[[1;34mINFO[m] | +- org.hamcrest:hamcrest-library:jar:1.3:test
[[1;34mINFO[m] | +- org.skyscreamer:jsonassert:jar:1.4.0:test
[[1;34mINFO[m] | \- org.springframework:spring-test:jar:4.3.11.RELEASE:test
[[1;34mINFO[m] +- org.springframework.boot:spring-boot-configuration-processor:jar:1.5.7.RELEASE:compile
[[1;34mINFO[m] | \- **com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1**:compile
[[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter-web:jar:1.5.7.RELEASE:compile
...
...
...
[[1;34mINFO[m] | \- net.jcip:jcip-annotations:jar:1.0:compile
[[1;34mINFO[m] \- com.google.code.findbugs:jsr305:jar:3.0.1:compile
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m] [1;32mBUILD SUCCESS[m
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m] Total time: 2.146 s
[[1;34mINFO[m] Finished at: 2018-03-18T09:54:01+08:00
[[1;34mINFO[m] Final Memory: 28M/619M
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
vaadin is a dependency of spring-boot-configuration-processor, just add exclusion to the dependency:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
<exclusions>
<exclusion>
<groupId>com.vaadin.external.google</groupId>
<artifactId>android-json</artifactId>
</exclusion>
</exclusions>
</dependency>
- redo the dependency: tree cli to resolve the exclusions, got the tree:
[[1;34mINFO[m] Scanning for projects...
[[1;34mINFO[m]
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m] [1mBuilding barcoder 0.9.42[m
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m]
[[1;34mINFO[m] [1m--- [0;32mmaven-dependency-plugin:2.10:tree[m [1m(default-cli)[m @ [36mbarcoder[0;1m ---[m
[[1;34mINFO[m] com.aossci:barcoder:jar:0.9.42
[[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter:jar:1.5.7.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot:jar:1.5.7.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-autoconfigure:jar:1.5.7.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-starter-logging:jar:1.5.7.RELEASE:compile
[[1;34mINFO[m] | | +- ch.qos.logback:logback-classic:jar:1.1.11:compile
[[1;34mINFO[m] | | | \- ch.qos.logback:logback-core:jar:1.1.11:compile
[[1;34mINFO[m] | | +- org.slf4j:jcl-over-slf4j:jar:1.7.25:compile
[[1;34mINFO[m] | | +- org.slf4j:jul-to-slf4j:jar:1.7.25:compile
[[1;34mINFO[m] | | \- org.slf4j:log4j-over-slf4j:jar:1.7.25:compile
[[1;34mINFO[m] | +- org.springframework:spring-core:jar:4.3.11.RELEASE:compile
[[1;34mINFO[m] | \- org.yaml:snakeyaml:jar:1.17:runtime
[[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter-test:jar:1.5.7.RELEASE:test
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-test:jar:1.5.7.RELEASE:test
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-test-autoconfigure:jar:1.5.7.RELEASE:test
[[1;34mINFO[m] | +- com.jayway.jsonpath:json-path:jar:2.2.0:test
[[1;34mINFO[m] | | \- net.minidev:json-smart:jar:2.2.1:test
[[1;34mINFO[m] | | \- net.minidev:accessors-smart:jar:1.1:test
[[1;34mINFO[m] | | \- org.ow2.asm:asm:jar:5.0.3:test
[[1;34mINFO[m] | +- org.assertj:assertj-core:jar:2.6.0:test
[[1;34mINFO[m] | +- org.mockito:mockito-core:jar:1.10.19:test
[[1;34mINFO[m] | | \- org.objenesis:objenesis:jar:2.1:test
[[1;34mINFO[m] | +- org.hamcrest:hamcrest-core:jar:1.3:test
[[1;34mINFO[m] | +- org.hamcrest:hamcrest-library:jar:1.3:test
[[1;34mINFO[m] | +- org.skyscreamer:jsonassert:jar:1.4.0:test
[[1;34mINFO[m] | | \-**com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1**:test
[[1;34mINFO[m] | \- org.springframework:spring-test:jar:4.3.11.RELEASE:test
[[1;34mINFO[m] +- org.springframework.boot:spring-boot-configuration-processor:jar:1.5.7.RELEASE:compile
...
...
...
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m] [1;32mBUILD SUCCESS[m
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m] Total time: 2.154 s
[[1;34mINFO[m] Finished at: 2018-03-18T09:58:38+08:00
[[1;34mINFO[m] Final Memory: 25M/491M
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
add exclusion:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>com.vaadin.external.google</groupId>
<artifactId>android-json</artifactId>
</exclusion>
</exclusions>
</dependency>
eventually, all dependencies of vaadin are excluded:
[[1;34mINFO[m] Scanning for projects...
[[1;34mINFO[m]
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m] [1mBuilding barcoder 0.9.42[m
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m]
[[1;34mINFO[m] [1m--- [0;32mmaven-dependency-plugin:2.10:tree[m [1m(default-cli)[m @ [36mbarcoder[0;1m ---[m
[[1;34mINFO[m] com.aossci:barcoder:jar:0.9.42
[[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter:jar:1.5.7.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot:jar:1.5.7.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-autoconfigure:jar:1.5.7.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-starter-logging:jar:1.5.7.RELEASE:compile
[[1;34mINFO[m] | | +- ch.qos.logback:logback-classic:jar:1.1.11:compile
[[1;34mINFO[m] | | | \- ch.qos.logback:logback-core:jar:1.1.11:compile
[[1;34mINFO[m] | | +- org.slf4j:jcl-over-slf4j:jar:1.7.25:compile
[[1;34mINFO[m] | | +- org.slf4j:jul-to-slf4j:jar:1.7.25:compile
[[1;34mINFO[m] | | \- org.slf4j:log4j-over-slf4j:jar:1.7.25:compile
[[1;34mINFO[m] | +- org.springframework:spring-core:jar:4.3.11.RELEASE:compile
[[1;34mINFO[m] | \- org.yaml:snakeyaml:jar:1.17:runtime
[[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter-test:jar:1.5.7.RELEASE:test
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-test:jar:1.5.7.RELEASE:test
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-test-autoconfigure:jar:1.5.7.RELEASE:test
[[1;34mINFO[m] | +- com.jayway.jsonpath:json-path:jar:2.2.0:test
[[1;34mINFO[m] | | \- net.minidev:json-smart:jar:2.2.1:test
[[1;34mINFO[m] | | \- net.minidev:accessors-smart:jar:1.1:test
[[1;34mINFO[m] | | \- org.ow2.asm:asm:jar:5.0.3:test
[[1;34mINFO[m] | +- org.assertj:assertj-core:jar:2.6.0:test
[[1;34mINFO[m] | +- org.mockito:mockito-core:jar:1.10.19:test
[[1;34mINFO[m] | | \- org.objenesis:objenesis:jar:2.1:test
[[1;34mINFO[m] | +- org.hamcrest:hamcrest-core:jar:1.3:test
[[1;34mINFO[m] | +- org.hamcrest:hamcrest-library:jar:1.3:test
[[1;34mINFO[m] | +- org.skyscreamer:jsonassert:jar:1.4.0:test
[[1;34mINFO[m] | \- org.springframework:spring-test:jar:4.3.11.RELEASE:test
[[1;34mINFO[m] +- org.springframework.boot:spring-boot-configuration-processor:jar:1.5.7.RELEASE:compile
[[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter-web:jar:1.5.7.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-starter-tomcat:jar:1.5.7.RELEASE:compile
[[1;34mINFO[m] | | +- org.apache.tomcat.embed:tomcat-embed-core:jar:8.5.20:compile
[[1;34mINFO[m] | | +- org.apache.tomcat.embed:tomcat-embed-el:jar:8.5.20:compile
[[1;34mINFO[m] | | \- org.apache.tomcat.embed:tomcat-embed-websocket:jar:8.5.20:compile
[[1;34mINFO[m] | +- org.hibernate:hibernate-validator:jar:5.3.5.Final:compile
[[1;34mINFO[m] | | +- javax.validation:validation-api:jar:1.1.0.Final:compile
[[1;34mINFO[m] | | \- org.jboss.logging:jboss-logging:jar:3.3.1.Final:compile
[[1;34mINFO[m] | +- org.springframework:spring-web:jar:4.3.11.RELEASE:compile
[[1;34mINFO[m] | | \- org.springframework:spring-beans:jar:4.3.11.RELEASE:compile
[[1;34mINFO[m] | \- org.springframework:spring-webmvc:jar:4.3.11.RELEASE:compile
[[1;34mINFO[m] | \- org.springframework:spring-expression:jar:4.3.11.RELEASE:compile
[[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter-data-jpa:jar:1.5.7.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-starter-aop:jar:1.5.7.RELEASE:compile
[[1;34mINFO[m] | | \- org.aspectj:aspectjweaver:jar:1.8.10:compile
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-starter-jdbc:jar:1.5.7.RELEASE:compile
[[1;34mINFO[m] | | +- org.apache.tomcat:tomcat-jdbc:jar:8.5.20:compile
[[1;34mINFO[m] | | | \- org.apache.tomcat:tomcat-juli:jar:8.5.20:compile
[[1;34mINFO[m] | | \- org.springframework:spring-jdbc:jar:4.3.11.RELEASE:compile
[[1;34mINFO[m] | +- org.hibernate:hibernate-core:jar:5.0.12.Final:compile
[[1;34mINFO[m] | | +- org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.0.Final:compile
[[1;34mINFO[m] | | +- org.javassist:javassist:jar:3.21.0-GA:compile
[[1;34mINFO[m] | | +- antlr:antlr:jar:2.7.7:compile
[[1;34mINFO[m] | | +- org.jboss:jandex:jar:2.0.0.Final:compile
[[1;34mINFO[m] | | +- dom4j:dom4j:jar:1.6.1:compile
[[1;34mINFO[m] | | \- org.hibernate.common:hibernate-commons-annotations:jar:5.0.1.Final:compile
[[1;34mINFO[m] | +- org.hibernate:hibernate-entitymanager:jar:5.0.12.Final:compile
[[1;34mINFO[m] | +- javax.transaction:javax.transaction-api:jar:1.2:compile
[[1;34mINFO[m] | +- org.springframework.data:spring-data-jpa:jar:1.11.7.RELEASE:compile
[[1;34mINFO[m] | | +- org.springframework.data:spring-data-commons:jar:1.13.7.RELEASE:compile
[[1;34mINFO[m] | | +- org.springframework:spring-orm:jar:4.3.11.RELEASE:compile
[[1;34mINFO[m] | | \- org.springframework:spring-tx:jar:4.3.11.RELEASE:compile
[[1;34mINFO[m] | \- org.springframework:spring-aspects:jar:4.3.11.RELEASE:compile
[[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter-security:jar:1.5.7.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework:spring-aop:jar:4.3.11.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework.security:spring-security-config:jar:4.2.3.RELEASE:compile
[[1;34mINFO[m] | | \- org.springframework.security:spring-security-core:jar:4.2.3.RELEASE:compile
[[1;34mINFO[m] | \- org.springframework.security:spring-security-web:jar:4.2.3.RELEASE:compile
[[1;34mINFO[m] +- org.json:json:jar:20170516:compile
[[1;34mINFO[m] +- mysql:mysql-connector-java:jar:5.1.44:compile
[[1;34mINFO[m] +- org.jetbrains:annotations:jar:16.0.1:compile
[[1;34mINFO[m] +- com.fasterxml.jackson.core:jackson-databind:jar:2.9.1:compile
[[1;34mINFO[m] +- com.fasterxml.jackson.core:jackson-core:jar:2.9.1:compile
[[1;34mINFO[m] +- com.fasterxml.jackson.core:jackson-annotations:jar:2.9.1:compile
[[1;34mINFO[m] +- com.github.everit-org.json-schema:org.everit.json.schema:jar:1.8.0:compile
[[1;34mINFO[m] | +- com.google.guava:guava:jar:22.0:compile
[[1;34mINFO[m] | | +- com.google.errorprone:error_prone_annotations:jar:2.0.18:compile
[[1;34mINFO[m] | | +- com.google.j2objc:j2objc-annotations:jar:1.1:compile
[[1;34mINFO[m] | | \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.14:compile
[[1;34mINFO[m] | +- commons-validator:commons-validator:jar:1.6:compile
[[1;34mINFO[m] | | +- commons-beanutils:commons-beanutils:jar:1.9.3:compile
[[1;34mINFO[m] | | +- commons-digester:commons-digester:jar:2.1:compile
[[1;34mINFO[m] | | +- commons-logging:commons-logging:jar:1.2:compile
[[1;34mINFO[m] | | \- commons-collections:commons-collections:jar:3.2.2:compile
[[1;34mINFO[m] | +- com.damnhandy:handy-uri-templates:jar:2.1.6:compile
[[1;34mINFO[m] | \- com.google.re2j:re2j:jar:1.1:compile
[[1;34mINFO[m] +- junit:junit:jar:4.12:test
[[1;34mINFO[m] +- io.springfox:springfox-swagger2:jar:2.7.0:compile
[[1;34mINFO[m] | +- io.swagger:swagger-annotations:jar:1.5.13:compile
[[1;34mINFO[m] | +- io.swagger:swagger-models:jar:1.5.13:compile
[[1;34mINFO[m] | +- io.springfox:springfox-spi:jar:2.7.0:compile
[[1;34mINFO[m] | | \- io.springfox:springfox-core:jar:2.7.0:compile
[[1;34mINFO[m] | | \- net.bytebuddy:byte-buddy:jar:1.6.14:compile
[[1;34mINFO[m] | +- io.springfox:springfox-schema:jar:2.7.0:compile
[[1;34mINFO[m] | +- io.springfox:springfox-swagger-common:jar:2.7.0:compile
[[1;34mINFO[m] | +- io.springfox:springfox-spring-web:jar:2.7.0:compile
[[1;34mINFO[m] | | \- org.reflections:reflections:jar:0.9.11:compile
[[1;34mINFO[m] | +- com.fasterxml:classmate:jar:1.3.4:compile
[[1;34mINFO[m] | +- org.slf4j:slf4j-api:jar:1.7.25:compile
[[1;34mINFO[m] | +- org.springframework.plugin:spring-plugin-core:jar:1.2.0.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework.plugin:spring-plugin-metadata:jar:1.2.0.RELEASE:compile
[[1;34mINFO[m] | \- org.mapstruct:mapstruct:jar:1.1.0.Final:compile
[[1;34mINFO[m] +- io.springfox:springfox-swagger-ui:jar:2.7.0:compile
[[1;34mINFO[m] +- com.mashape.unirest:unirest-java:jar:1.4.9:compile
[[1;34mINFO[m] | +- org.apache.httpcomponents:httpclient:jar:4.5.3:compile
[[1;34mINFO[m] | | +- org.apache.httpcomponents:httpcore:jar:4.4.6:compile
[[1;34mINFO[m] | | \- commons-codec:commons-codec:jar:1.10:compile
[[1;34mINFO[m] | +- org.apache.httpcomponents:httpasyncclient:jar:4.1.3:compile
[[1;34mINFO[m] | | \- org.apache.httpcomponents:httpcore-nio:jar:4.4.6:compile
[[1;34mINFO[m] | \- org.apache.httpcomponents:httpmime:jar:4.5.3:compile
[[1;34mINFO[m] +- org.apache.commons:commons-lang3:jar:3.6:compile
[[1;34mINFO[m] +- org.codehaus.groovy:groovy-all:jar:2.4.12:compile
[[1;34mINFO[m] +- commons-io:commons-io:jar:2.5:compile
[[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter-cache:jar:1.5.7.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework:spring-context:jar:4.3.11.RELEASE:compile
[[1;34mINFO[m] | \- org.springframework:spring-context-support:jar:4.3.11.RELEASE:compile
[[1;34mINFO[m] \- io.minio:minio:jar:3.0.12:compile
[[1;34mINFO[m] +- com.google.http-client:google-http-client-xml:jar:1.20.0:compile
[[1;34mINFO[m] | +- com.google.http-client:google-http-client:jar:1.20.0:compile
[[1;34mINFO[m] | \- xpp3:xpp3:jar:1.1.4c:compile
[[1;34mINFO[m] +- com.squareup.okhttp3:okhttp:jar:3.7.0:compile
[[1;34mINFO[m] +- com.squareup.okio:okio:jar:1.12.0:compile
[[1;34mINFO[m] +- joda-time:joda-time:jar:2.9.9:compile
[[1;34mINFO[m] +- com.google.code.findbugs:annotations:jar:3.0.1:compile
[[1;34mINFO[m] | \- net.jcip:jcip-annotations:jar:1.0:compile
[[1;34mINFO[m] \- com.google.code.findbugs:jsr305:jar:3.0.1:compile
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m] [1;32mBUILD SUCCESS[m
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m] Total time: 2.106 s
[[1;34mINFO[m] Finished at: 2018-03-18T10:01:39+08:00
[[1;34mINFO[m] Final Memory: 25M/491M
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
Comment From: snicoll
@SollyTaylor or you could simply upgrade to the latest 1.5.x that doesn't bring that dependency anymore.
Comment From: SollyTaylor
@snicoll I test the upgraded versions, 1.5.9.RELEASE and 1.5.10.RELEASE are still complaining the vaadin dependency issues. while the version 1.5.11-build-snapshot is not ready for production I think. I have to exclude the vaadin dependencies explicitly.
Here is the dep.log of mvn dependency:tree > dep.log
[[1;34mINFO[m] Scanning for projects...
[[1;34mINFO[m]
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m] [1mBuilding barcoder 0.9.42[m
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m]
[[1;34mINFO[m] [1m--- [0;32mmaven-dependency-plugin:2.10:tree[m [1m(default-cli)[m @ [36mbarcoder[0;1m ---[m
[[1;34mINFO[m] com.aossci:barcoder:jar:0.9.42
[[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter:jar:1.5.10.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot:jar:1.5.10.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-autoconfigure:jar:1.5.10.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-starter-logging:jar:1.5.10.RELEASE:compile
[[1;34mINFO[m] | | +- ch.qos.logback:logback-classic:jar:1.1.11:compile
[[1;34mINFO[m] | | | \- ch.qos.logback:logback-core:jar:1.1.11:compile
[[1;34mINFO[m] | | +- org.slf4j:jcl-over-slf4j:jar:1.7.25:compile
[[1;34mINFO[m] | | +- org.slf4j:jul-to-slf4j:jar:1.7.25:compile
[[1;34mINFO[m] | | \- org.slf4j:log4j-over-slf4j:jar:1.7.25:compile
[[1;34mINFO[m] | +- org.springframework:spring-core:jar:4.3.14.RELEASE:compile
[[1;34mINFO[m] | \- org.yaml:snakeyaml:jar:1.17:runtime
[[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter-test:jar:1.5.10.RELEASE:test
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-test:jar:1.5.10.RELEASE:test
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-test-autoconfigure:jar:1.5.10.RELEASE:test
[[1;34mINFO[m] | +- com.jayway.jsonpath:json-path:jar:2.2.0:test
[[1;34mINFO[m] | | \- net.minidev:json-smart:jar:2.2.1:test
[[1;34mINFO[m] | | \- net.minidev:accessors-smart:jar:1.1:test
[[1;34mINFO[m] | | \- org.ow2.asm:asm:jar:5.0.3:test
[[1;34mINFO[m] | +- org.assertj:assertj-core:jar:2.6.0:test
[[1;34mINFO[m] | +- org.mockito:mockito-core:jar:1.10.19:test
[[1;34mINFO[m] | | \- org.objenesis:objenesis:jar:2.1:test
[[1;34mINFO[m] | +- org.hamcrest:hamcrest-core:jar:1.3:test
[[1;34mINFO[m] | +- org.hamcrest:hamcrest-library:jar:1.3:test
[[1;34mINFO[m] | +- org.skyscreamer:jsonassert:jar:1.4.0:test
[[1;34mINFO[m] | | \- ****com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1:test
[[1;34mINFO[m] | \- org.springframework:spring-test:jar:4.3.14.RELEASE:test
[[1;34mINFO[m] +- org.springframework.boot:spring-boot-configuration-processor:jar:1.5.10.RELEASE:compile
[[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter-web:jar:1.5.10.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-starter-tomcat:jar:1.5.10.RELEASE:compile
[[1;34mINFO[m] | | +- org.apache.tomcat.embed:tomcat-embed-core:jar:8.5.27:compile
[[1;34mINFO[m] | | | \- org.apache.tomcat:tomcat-annotations-api:jar:8.5.27:compile
[[1;34mINFO[m] | | +- org.apache.tomcat.embed:tomcat-embed-el:jar:8.5.27:compile
[[1;34mINFO[m] | | \- org.apache.tomcat.embed:tomcat-embed-websocket:jar:8.5.27:compile
[[1;34mINFO[m] | +- org.hibernate:hibernate-validator:jar:5.3.6.Final:compile
[[1;34mINFO[m] | | +- javax.validation:validation-api:jar:1.1.0.Final:compile
[[1;34mINFO[m] | | \- org.jboss.logging:jboss-logging:jar:3.3.1.Final:compile
[[1;34mINFO[m] | +- org.springframework:spring-web:jar:4.3.14.RELEASE:compile
[[1;34mINFO[m] | | \- org.springframework:spring-beans:jar:4.3.14.RELEASE:compile
[[1;34mINFO[m] | \- org.springframework:spring-webmvc:jar:4.3.14.RELEASE:compile
[[1;34mINFO[m] | \- org.springframework:spring-expression:jar:4.3.14.RELEASE:compile
[[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter-data-jpa:jar:1.5.10.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-starter-aop:jar:1.5.10.RELEASE:compile
[[1;34mINFO[m] | | \- org.aspectj:aspectjweaver:jar:1.8.13:compile
[[1;34mINFO[m] | +- org.springframework.boot:spring-boot-starter-jdbc:jar:1.5.10.RELEASE:compile
[[1;34mINFO[m] | | +- org.apache.tomcat:tomcat-jdbc:jar:8.5.27:compile
[[1;34mINFO[m] | | | \- org.apache.tomcat:tomcat-juli:jar:8.5.27:compile
[[1;34mINFO[m] | | \- org.springframework:spring-jdbc:jar:4.3.14.RELEASE:compile
[[1;34mINFO[m] | +- org.hibernate:hibernate-core:jar:5.0.12.Final:compile
[[1;34mINFO[m] | | +- org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.0.Final:compile
[[1;34mINFO[m] | | +- org.javassist:javassist:jar:3.21.0-GA:compile
[[1;34mINFO[m] | | +- antlr:antlr:jar:2.7.7:compile
[[1;34mINFO[m] | | +- org.jboss:jandex:jar:2.0.0.Final:compile
[[1;34mINFO[m] | | +- dom4j:dom4j:jar:1.6.1:compile
[[1;34mINFO[m] | | \- org.hibernate.common:hibernate-commons-annotations:jar:5.0.1.Final:compile
[[1;34mINFO[m] | +- org.hibernate:hibernate-entitymanager:jar:5.0.12.Final:compile
[[1;34mINFO[m] | +- javax.transaction:javax.transaction-api:jar:1.2:compile
[[1;34mINFO[m] | +- org.springframework.data:spring-data-jpa:jar:1.11.10.RELEASE:compile
[[1;34mINFO[m] | | +- org.springframework.data:spring-data-commons:jar:1.13.10.RELEASE:compile
[[1;34mINFO[m] | | +- org.springframework:spring-orm:jar:4.3.14.RELEASE:compile
[[1;34mINFO[m] | | \- org.springframework:spring-tx:jar:4.3.14.RELEASE:compile
[[1;34mINFO[m] | \- org.springframework:spring-aspects:jar:4.3.14.RELEASE:compile
[[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter-security:jar:1.5.10.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework:spring-aop:jar:4.3.14.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework.security:spring-security-config:jar:4.2.4.RELEASE:compile
[[1;34mINFO[m] | | \- org.springframework.security:spring-security-core:jar:4.2.4.RELEASE:compile
[[1;34mINFO[m] | \- org.springframework.security:spring-security-web:jar:4.2.4.RELEASE:compile
[[1;34mINFO[m] +- org.json:json:jar:20170516:compile
[[1;34mINFO[m] +- mysql:mysql-connector-java:jar:5.1.45:compile
[[1;34mINFO[m] +- org.jetbrains:annotations:jar:16.0.1:compile
[[1;34mINFO[m] +- com.fasterxml.jackson.core:jackson-databind:jar:2.9.1:compile
[[1;34mINFO[m] +- com.fasterxml.jackson.core:jackson-core:jar:2.9.1:compile
[[1;34mINFO[m] +- com.fasterxml.jackson.core:jackson-annotations:jar:2.9.1:compile
[[1;34mINFO[m] +- com.github.everit-org.json-schema:org.everit.json.schema:jar:1.8.0:compile
[[1;34mINFO[m] | +- com.google.guava:guava:jar:22.0:compile
[[1;34mINFO[m] | | +- com.google.errorprone:error_prone_annotations:jar:2.0.18:compile
[[1;34mINFO[m] | | +- com.google.j2objc:j2objc-annotations:jar:1.1:compile
[[1;34mINFO[m] | | \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.14:compile
[[1;34mINFO[m] | +- commons-validator:commons-validator:jar:1.6:compile
[[1;34mINFO[m] | | +- commons-beanutils:commons-beanutils:jar:1.9.3:compile
[[1;34mINFO[m] | | +- commons-digester:commons-digester:jar:2.1:compile
[[1;34mINFO[m] | | +- commons-logging:commons-logging:jar:1.2:compile
[[1;34mINFO[m] | | \- commons-collections:commons-collections:jar:3.2.2:compile
[[1;34mINFO[m] | +- com.damnhandy:handy-uri-templates:jar:2.1.6:compile
[[1;34mINFO[m] | \- com.google.re2j:re2j:jar:1.1:compile
[[1;34mINFO[m] +- junit:junit:jar:4.12:test
[[1;34mINFO[m] +- io.springfox:springfox-swagger2:jar:2.7.0:compile
[[1;34mINFO[m] | +- io.swagger:swagger-annotations:jar:1.5.13:compile
[[1;34mINFO[m] | +- io.swagger:swagger-models:jar:1.5.13:compile
[[1;34mINFO[m] | +- io.springfox:springfox-spi:jar:2.7.0:compile
[[1;34mINFO[m] | | \- io.springfox:springfox-core:jar:2.7.0:compile
[[1;34mINFO[m] | | \- net.bytebuddy:byte-buddy:jar:1.6.14:compile
[[1;34mINFO[m] | +- io.springfox:springfox-schema:jar:2.7.0:compile
[[1;34mINFO[m] | +- io.springfox:springfox-swagger-common:jar:2.7.0:compile
[[1;34mINFO[m] | +- io.springfox:springfox-spring-web:jar:2.7.0:compile
[[1;34mINFO[m] | | \- org.reflections:reflections:jar:0.9.11:compile
[[1;34mINFO[m] | +- com.fasterxml:classmate:jar:1.3.4:compile
[[1;34mINFO[m] | +- org.slf4j:slf4j-api:jar:1.7.25:compile
[[1;34mINFO[m] | +- org.springframework.plugin:spring-plugin-core:jar:1.2.0.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework.plugin:spring-plugin-metadata:jar:1.2.0.RELEASE:compile
[[1;34mINFO[m] | \- org.mapstruct:mapstruct:jar:1.1.0.Final:compile
[[1;34mINFO[m] +- io.springfox:springfox-swagger-ui:jar:2.7.0:compile
[[1;34mINFO[m] +- com.mashape.unirest:unirest-java:jar:1.4.9:compile
[[1;34mINFO[m] | +- org.apache.httpcomponents:httpclient:jar:4.5.5:compile
[[1;34mINFO[m] | | +- org.apache.httpcomponents:httpcore:jar:4.4.9:compile
[[1;34mINFO[m] | | \- commons-codec:commons-codec:jar:1.10:compile
[[1;34mINFO[m] | +- org.apache.httpcomponents:httpasyncclient:jar:4.1.3:compile
[[1;34mINFO[m] | | \- org.apache.httpcomponents:httpcore-nio:jar:4.4.6:compile
[[1;34mINFO[m] | \- org.apache.httpcomponents:httpmime:jar:4.5.5:compile
[[1;34mINFO[m] +- org.apache.commons:commons-lang3:jar:3.6:compile
[[1;34mINFO[m] +- org.codehaus.groovy:groovy-all:jar:2.4.12:compile
[[1;34mINFO[m] +- commons-io:commons-io:jar:2.5:compile
[[1;34mINFO[m] +- org.springframework.boot:spring-boot-starter-cache:jar:1.5.10.RELEASE:compile
[[1;34mINFO[m] | +- org.springframework:spring-context:jar:4.3.14.RELEASE:compile
[[1;34mINFO[m] | \- org.springframework:spring-context-support:jar:4.3.14.RELEASE:compile
[[1;34mINFO[m] \- io.minio:minio:jar:3.0.12:compile
[[1;34mINFO[m] +- com.google.http-client:google-http-client-xml:jar:1.20.0:compile
[[1;34mINFO[m] | +- com.google.http-client:google-http-client:jar:1.20.0:compile
[[1;34mINFO[m] | \- xpp3:xpp3:jar:1.1.4c:compile
[[1;34mINFO[m] +- com.squareup.okhttp3:okhttp:jar:3.7.0:compile
[[1;34mINFO[m] +- com.squareup.okio:okio:jar:1.12.0:compile
[[1;34mINFO[m] +- joda-time:joda-time:jar:2.9.9:compile
[[1;34mINFO[m] +- com.google.code.findbugs:annotations:jar:3.0.1:compile
[[1;34mINFO[m] | \- net.jcip:jcip-annotations:jar:1.0:compile
[[1;34mINFO[m] \- com.google.code.findbugs:jsr305:jar:3.0.1:compile
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m] [1;32mBUILD SUCCESS[m
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m] Total time: 1.650 s
[[1;34mINFO[m] Finished at: 2018-03-19T08:14:06+08:00
[[1;34mINFO[m] Final Memory: 26M/216M
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
Comment From: snicoll
@SollyTaylor read the tree you've pasted. The dependency comes from org.skyscreamer:jsonassert:jar:1.4.0:test (nothing to do with the annotation processor). If you have more questions, please ask on StackOverflow or Gitter.