Looks like I hit issue https://issues.apache.org/jira/browse/PHOENIX-5231 <https://issues.apache.org/jira/browse/PHOENIX-5231> My scala application builds without any problem agains phoenix 4.13.x and 4.14.x. But got run-time problem with 4.15.0:
Caused by: org.apache.phoenix.exception.PhoenixNonRetryableRuntimeException: Could not load/instantiate class org.apache.phoenix.query.DefaultGuidePostsCacheFactory at org.apache.phoenix.query.GuidePostsCacheProvider.loadAndGetGuidePostsCacheFactory(GuidePostsCacheProvider.java:57) at org.apache.phoenix.query.GuidePostsCacheProvider.getGuidePostsCache(GuidePostsCacheProvider.java:73) at org.apache.phoenix.query.ConnectionQueryServicesImpl.<init>(ConnectionQueryServicesImpl.java:433) at org.apache.phoenix.jdbc.PhoenixDriver$3.call(PhoenixDriver.java:248) at org.apache.phoenix.jdbc.PhoenixDriver$3.call(PhoenixDriver.java:241) at com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4796) at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589) at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374) at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2337) at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2252) at com.google.common.cache.LocalCache.get(LocalCache.java:3990) at com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4793) at org.apache.phoenix.jdbc.PhoenixDriver.getConnectionQueryServices(PhoenixDriver.java:241) at org.apache.phoenix.jdbc.PhoenixEmbeddedDriver.createConnection(PhoenixEmbeddedDriver.java:142) at org.apache.phoenix.jdbc.PhoenixDriver.connect(PhoenixDriver.java:221) at java.sql.DriverManager.getConnection(DriverManager.java:664) at java.sql.DriverManager.getConnection(DriverManager.java:208) at PhoenixWriter.<init>(PhoenixWriter.scala:29) Any ideas how to build scala application with phoenix-4.15.0? My build dependency for Scala application is: libraryDependencies ++= Seq( "org.apache.logging.log4j" %% "log4j-api-scala" % "11.0", "org.apache.logging.log4j" % "log4j-api" % "2.8.2", "org.apache.logging.log4j" % "log4j-core" % "2.8.2" % Runtime, "org.apache.hadoop" % "hadoop-common" % "2.9.0", "org.apache.hadoop" % "hadoop-client" % "2.9.0", "org.apache.hbase" % "hbase" % "1.4.12", "org.apache.hbase" % "hbase-client" % "1.4.12", "org.apache.hbase" % "hbase-common" % "1.4.12", "org.apache.hbase" % "hbase-server" % "1.4.12", "org.apache.phoenix" % "phoenix" % "4.15.0-HBase-1.4", "org.apache.phoenix" % "phoenix-core" % "4.15.0-HBase-1.4", ) assemblyMergeStrategy in assembly := { case PathList("META-INF", xs @ _*) => MergeStrategy.discard case x => MergeStrategy.first }