scala - SBT transitive dependency resolution conflict -
i have problem in sbt resolving transitive dependencies.
the error is:
java.lang.nosuchmethoderror: com.vividsolutions.jts.index.strtree.strtree.queryboundary()ljava/util/list geospark using jts2geojson https://github.com/bjornharrtell/jts2geojson/blob/master/pom.xml references jts in version 1.14, excluded , use custom artifact replacement. called jtsplus still lives in com.vividsolutions namespace , provides additional methods, i.e. 1 missing above.
the latest geotools 17 using jts in version 1.13 https://github.com/geotools/geotools/blob/master/pom.xml#l752-l754
i need replace com.vividsolution.jts geotools org.datasyslab.jtsplus offers additional required functionality how can achieve this?
in maven:
<dependency>             <groupid>org. geotools </groupid>             <artifactid> geotools </artifactid>             <version>yourversion</version>             <exclusions>                 <exclusion>             <groupid>com.vividsolutions</groupid>             <artifactid>jts</artifactid>                 </exclusion>             </exclusions> </dependency> should work, sbt using
librarydependencies ++= seq(   "org.geotools" % "gt-main" % geotools,   "org.geotools" % "gt-arcgrid" % geotools,   "org.geotools" % "gt-process-raster" % geotools)   .map(_.excludeall(     exclusionrule(organization = "com.vividsolution", artifact = "jts")   )) did not fix it. actually, whe using dependencygraph, can see sbt still applying regular jts in version 1.13 whole project.
how can fix dependencies exclude original jts version?
my build.sbt looks like
lazy val geotools = "17.0"  resolvers += "osgeo" @ "http://download.osgeo.org/webdav/geotools" resolvers += "boundless" @ "http://repo.boundlessgeo.com/main" resolvers += "imageio" @ "http://maven.geo-solutions.it" resolvers += resolver.mavenlocal  librarydependencies ++= seq(   "org.geotools" % "gt-main" % geotools,   "org.geotools" % "gt-arcgrid" % geotools,   "org.geotools" % "gt-process-raster" % geotools)   .map(_.excludeall(     exclusionrule(organization = "com.vividsolution", artifact = "jts")   ))  librarydependencies ++= seq(   "org.datasyslab" % "geospark" % "0.6.1-snapshot" ) 
why sbt not excluding these libraries despite using excludes? mentioned in comments alldependencies instead of librarydependencies needs used. think required due transitive problems.
Comments
Post a Comment