[ https://issues.apache.org/jira/browse/KAFKA-7741?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16723514#comment-16723514 ]
John Roesler commented on KAFKA-7741: ------------------------------------- Hi [~sachabarber], Thanks for the report. I've not seen this error before, but I can confirm I also get the same error on my machine with: build.sbt: {noformat} name := "ScalaKafkaStreamsDemo" version := "1.0" scalaVersion := "2.12.1" libraryDependencies += "org.apache.kafka" %% "kafka" % "2.1.0" libraryDependencies += "org.apache.kafka" % "kafka-clients" % "2.1.0" libraryDependencies += "org.apache.kafka" % "kafka-streams" % "2.1.0" libraryDependencies += "javax.ws.rs" % "javax.ws.rs-api" % "2.1.1" libraryDependencies += "org.apache.kafka" %% "kafka-streams-scala" % "2.1.0" //TEST libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.5" % Test libraryDependencies += "org.apache.kafka" % "kafka-streams-test-utils" % "2.1.0" % Test {noformat} and: {noformat} $ sbt compile [info] Loading settings for project global-plugins from idea.sbt,plugins.sbt ... [info] Loading global plugins from /home/john/.sbt/1.0/plugins [info] Loading project definition from /tmp/test/project [info] Loading settings for project test from build.sbt ... [info] Set current project to ScalaKafkaStreamsDemo (in build file:/tmp/test/) [info] Executing in batch mode. For better performance use sbt's shell [info] Updating ... [warn] Detected merged artifact: [FAILED ] javax.ws.rs#javax.ws.rs-api;2.1.1!javax.ws.rs-api.${packaging.type}: (0ms). [warn] ==== local: tried [warn] ==== public: tried [warn] https://repo1.maven.org/maven2/javax/ws/rs/javax.ws.rs-api/2.1.1/javax.ws.rs-api-2.1.1.${packaging.type} [warn] ==== local-preloaded-ivy: tried [warn] /home/john/.sbt/preloaded/javax.ws.rs/javax.ws.rs-api/2.1.1/${packaging.type}s/javax.ws.rs-api.${packaging.type} [warn] ==== local-preloaded: tried [warn] file:////home/john/.sbt/preloaded/javax/ws/rs/javax.ws.rs-api/2.1.1/javax.ws.rs-api-2.1.1.${packaging.type} [warn] :::::::::::::::::::::::::::::::::::::::::::::: [warn] :: FAILED DOWNLOADS :: [warn] :: ^ see resolution messages for details ^ :: [warn] :::::::::::::::::::::::::::::::::::::::::::::: [warn] :: javax.ws.rs#javax.ws.rs-api;2.1.1!javax.ws.rs-api.${packaging.type} [warn] :::::::::::::::::::::::::::::::::::::::::::::: ...{noformat} That URL has an unsubstituted variable in it, so I did a little searching for "sbt packaging.type", and it looks like it might be a bug in the way that Maven and SBT are working together. See for example: [https://github.com/ronmamo/reflections/issues/169] It seems like the general approach people are using is to just make SBT replace "${packaging.type}" with "jar" (the actual artifact is at https://repo1.maven.org/maven2/javax/ws/rs/javax.ws.rs-api/2.1.1/javax.ws.rs-api-2.1.1.jar"). For example: {noformat} $ sbt -Dpackaging.type=jar compile [info] Loading settings for project global-plugins from idea.sbt,plugins.sbt ... [info] Loading global plugins from /home/john/.sbt/1.0/plugins [info] Loading project definition from /tmp/test/project [info] Loading settings for project test from build.sbt ... [info] Set current project to ScalaKafkaStreamsDemo (in build file:/tmp/test/) [info] Executing in batch mode. For better performance use sbt's shell [info] Updating ... [info] downloading https://repo1.maven.org/maven2/javax/ws/rs/javax.ws.rs-api/2.1.1/javax.ws.rs-api-2.1.1.jar ... [info] [SUCCESSFUL ] javax.ws.rs#javax.ws.rs-api;2.1.1!javax.ws.rs-api.jar (861ms) [info] Done updating. [warn] There may be incompatibilities among your library dependencies; run 'evicted' to see detailed eviction warnings. [success] Total time: 2 s, completed Dec 17, 2018, 5:45:42 PM {noformat} As far as what we can do in Kafka, I'm not sure... The dependency chain for this dependency is: {noformat} $ sbt "whatDependsOn javax.ws.rs" ... [info] javax.ws.rs:javax.ws.rs-api:2.1.1 [info] +-org.apache.kafka:connect-api:2.1.0 [info] | +-org.apache.kafka:connect-json:2.1.0 [info] | +-org.apache.kafka:kafka-streams:2.1.0 [info] | +-org.apache.kafka:kafka-streams-scala_2.12:2.1.0 [S] [info] | | +-scalakafkastreamsdemo:scalakafkastreamsdemo_2.12:1.0 [S] [info] | | [info] | +-scalakafkastreamsdemo:scalakafkastreamsdemo_2.12:1.0 [S] [info] | [info] +-scalakafkastreamsdemo:scalakafkastreamsdemo_2.12:1.0 [S] {noformat} You can directly see the connect-api:2.1.0 pom file at: [http://central.maven.org/maven2/org/apache/kafka/connect-api/2.1.0/connect-api-2.1.0.pom] In my web searches, I found [https://github.com/eclipse-ee4j/jaxrs-api/issues/572,] which seems to be the root cause: the javax.ws.rs-api pom doesn't specify "<packaging>jar</packaging>". The last comment on that posts suggests that we should change coordinates and update the dependency to fix the issue. But I don't know much about what's been happening with that project to know if this is really ok to do... Since this seems to be a problem with Connect's dependency, I'm changing the label from "streams" to "connect", to hopefully get some attention from people who might be a little more familiar with javax/jakarta to comment. Sorry for your troubles... Can you confirm if that workaround above works for you? -john > Bad dependency via SBT > ---------------------- > > Key: KAFKA-7741 > URL: https://issues.apache.org/jira/browse/KAFKA-7741 > Project: Kafka > Issue Type: Bug > Components: core, KafkaConnect > Affects Versions: 2.1.0 > Environment: Windows 10 professional, IntelliJ IDEA 2017.1 > Reporter: sacha barber > Priority: Major > > I am using the Kafka-Streams-Scala 2.1.0 JAR. > And if I create a new Scala project using SBT with these dependencies > {code} > name := "ScalaKafkaStreamsDemo" > version := "1.0" > scalaVersion := "2.12.1" > libraryDependencies += "org.apache.kafka" %% "kafka" % "2.0.0" > libraryDependencies += "org.apache.kafka" % "kafka-clients" % "2.0.0" > libraryDependencies += "org.apache.kafka" % "kafka-streams" % "2.0.0" > libraryDependencies += "org.apache.kafka" %% "kafka-streams-scala" % "2.0.0" > //TEST > libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.5" % Test > libraryDependencies += "org.apache.kafka" % "kafka-streams-test-utils" % > "2.0.0" % Test > {code} > I get this error > > {code} > SBT 'ScalaKafkaStreamsDemo' project refresh failed > Error:Error while importing SBT project:<br/>...<br/><pre>[info] Resolving > jline#jline;2.14.1 ... > [warn] [FAILED ] > javax.ws.rs#javax.ws.rs-api;2.1.1!javax.ws.rs-api.${packaging.type}: (0ms) > [warn] ==== local: tried > [warn] > C:\Users\sacha\.ivy2\local\javax.ws.rs\javax.ws.rs-api\2.1.1\${packaging.type}s\javax.ws.rs-api.${packaging.type} > [warn] ==== public: tried > [warn] > https://repo1.maven.org/maven2/javax/ws/rs/javax.ws.rs-api/2.1.1/javax.ws.rs-api-2.1.1.${packaging.type} > [info] downloading > https://repo1.maven.org/maven2/org/apache/kafka/kafka-streams-test-utils/2.1.0/kafka-streams-test-utils-2.1.0.jar > ... > [info] [SUCCESSFUL ] > org.apache.kafka#kafka-streams-test-utils;2.1.0!kafka-streams-test-utils.jar > (344ms) > [warn] :::::::::::::::::::::::::::::::::::::::::::::: > [warn] :: FAILED DOWNLOADS :: > [warn] :: ^ see resolution messages for details ^ :: > [warn] :::::::::::::::::::::::::::::::::::::::::::::: > [warn] :: javax.ws.rs#javax.ws.rs-api;2.1.1!javax.ws.rs-api.${packaging.type} > [warn] :::::::::::::::::::::::::::::::::::::::::::::: > [trace] Stack trace suppressed: run 'last *:ssExtractDependencies' for the > full output. > [trace] Stack trace suppressed: run 'last *:update' for the full output. > [error] (*:ssExtractDependencies) sbt.ResolveException: download failed: > javax.ws.rs#javax.ws.rs-api;2.1.1!javax.ws.rs-api.${packaging.type} > [error] (*:update) sbt.ResolveException: download failed: > javax.ws.rs#javax.ws.rs-api;2.1.1!javax.ws.rs-api.${packaging.type} > [error] Total time: 8 s, completed 16-Dec-2018 19:27:21 > Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=384M; > support was removed in 8.0</pre><br/>See complete log in <a > href="file:/C:/Users/sacha/.IdeaIC2017.1/system/log/sbt.last.log">file:/C:/Users/sacha/.IdeaIC2017.1/system/log/sbt.last.log</a> > {code} > This seems to be a common issue with bad dependency from Kafka to > javax.ws.rs-api. > if I drop the Kafka version down to 2.0.0 and add this line to my SBT file > this error goes away > {code} > libraryDependencies += "javax.ws.rs" % "javax.ws.rs-api" % "2.1" > artifacts(Artifact("javax.ws.rs-api", "jar", "jar"))` > {code} > > However I would like to work with 2.1.0 version. > > -- This message was sent by Atlassian JIRA (v7.6.3#76005)