This is because of jar conflicts. It happens because of maven transitive dependencies.
Based on the dependency tree that you have posted here, below two jars are conflicting each other over JSONObject.class
.
1) android-json.jar (com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1:test)
2) json.jar (org.json:json:jar:20160810:compile)
You can exclude one of these jars based on your requirement.
example:
<exclusions>
<exclusion>
<groupId>com.vaadin.external.google</groupId>
<artifactId>android-json</artifactId>
</exclusion>
</exclusions>