Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NoSuchMethodError when using spring-boot-starter-test due to transitive dependency on incomplete clean room implementation of org.json:json #9248

Closed
scottishWill opened this issue May 17, 2017 · 8 comments
Labels
type: documentation A documentation update
Milestone

Comments

@scottishWill
Copy link

scottishWill commented May 17, 2017

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

@spring-projects-issues spring-projects-issues added the status: waiting-for-triage An issue we've not yet triaged label May 17, 2017
@philwebb
Copy link
Member

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.

@philwebb philwebb added status: waiting-for-feedback We need additional information before we can continue priority: normal type: documentation A documentation update and removed status: waiting-for-triage An issue we've not yet triaged status: waiting-for-feedback We need additional information before we can continue labels May 17, 2017
@philwebb philwebb added this to the 1.5.4 milestone May 17, 2017
@philwebb
Copy link
Member

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.

@wilkinsona wilkinsona changed the title Conflicting fully qualified packages names in spring-boot-starter and spring-boot-starter-test NoSuchMethodError when using spring-boot-starter-test due to transitive dependency on incomplete clean room implementation of org.json:json Jun 6, 2017
@wilkinsona
Copy link
Member

wilkinsona commented Jun 6, 2017

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

@johnjaylward
Copy link

johnjaylward commented Jun 29, 2017

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.

@SollyTaylor
Copy link

SollyTaylor commented Mar 18, 2018

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>
  1. 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

@snicoll
Copy link
Member

snicoll commented Mar 18, 2018

@SollyTaylor or you could simply upgrade to the latest 1.5.x that doesn't bring that dependency anymore.

@SollyTaylor
Copy link

@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

@snicoll
Copy link
Member

snicoll commented Mar 19, 2018

@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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: documentation A documentation update
Projects
None yet
Development

No branches or pull requests

7 participants