SBT错误解决MVN存储库依赖性



我正在尝试将此Java依赖性添加到我的Scala项目中,但是当我运行SBT时,它说:

[warn] ==== public: tried
[warn]   https://repo1.maven.org/maven2/org/jboss/spec/javax/xml/bind/jboss-jaxb-api_2.3_spec/working@HP022L.corp.umbrella.com/jboss-jaxb-api_2.3_spec-working@HP022L.corp.umbrella.com.pom
[warn] ==== sbt-maven-releases: tried
[warn]   https://repo.scala-sbt.org/scalasbt/maven-releases/org/jboss/spec/javax/xml/bind/jboss-jaxb-api_2.3_spec/working@HP022L.corp.umbrella.com/jboss-jaxb-api_2.3_spec-working@HP022L.corp.umbrella.com.pom
[warn] ==== sbt-maven-snapshots: tried
[warn]   https://repo.scala-sbt.org/scalasbt/maven-snapshots/org/jboss/spec/javax/xml/bind/jboss-jaxb-api_2.3_spec/working@HP022L.corp.umbrella.com/jboss-jaxb-api_2.3_spec-working@HP022L.corp.umbrella.com.pom
[warn] ==== typesafe-ivy-releases: tried
[warn]   https://repo.typesafe.com/typesafe/ivy-releases/org.jboss.spec.javax.xml.bind/jboss-jaxb-api_2.3_spec/working@HP022L.corp.umbrella.com/ivys/ivy.xml
[warn] ==== sbt-ivy-snapshots: tried
[warn]   https://repo.scala-sbt.org/scalasbt/ivy-snapshots/org.jboss.spec.javax.xml.bind/jboss-jaxb-api_2.3_spec/working@HP022L.corp.umbrella.com/ivys/ivy.xml
[warn]  module not found: org.reactivestreams#reactive-streams;working@HP022L.corp.umbrella.com
....
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: org.jboss.spec.javax.xml.bind#jboss-jaxb-api_2.3_spec;working@HP022L.corp.umbrella.com: not found
[warn]  :: org.reactivestreams#reactive-streams;working@HP022L.corp.umbrella.com: not found
[warn]  :: javax.validation#validation-api;working@HP022L.corp.umbrella.com: not found
[warn]  :: org.jboss.spec.javax.annotation#jboss-annotations-api_1.3_spec;working@HP022L.corp.umbrella.com: not found
[warn]  :: javax.activation#activation;working@HP022L.corp.umbrella.com: not found
[warn]  :: org.apache.httpcomponents#httpclient;working@HP022L.corp.umbrella.com: not found
[warn]  :: commons-io#commons-io;working@HP022L.corp.umbrella.com: not found
[warn]  :: net.jcip#jcip-annotations;working@HP022L.corp.umbrella.com: not found
[warn]  :: org.jboss.logging#jboss-logging-annotations;working@HP022L.corp.umbrella.com: not found
[warn]  :: org.jboss.logging#jboss-logging-processor;working@HP022L.corp.umbrella.com: not found
[warn]  :: junit#junit;working@HP022L.corp.umbrella.com: not found
[warn]  :: org.glassfish.jaxb#jaxb-runtime;working@HP022L.corp.umbrella.com: not found
[warn]  :: com.sun.mail#javax.mail;working@HP022L.corp.umbrella.com: not found
[warn]  :: org.apache.james#apache-mime4j;working@HP022L.corp.umbrella.com: not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::

这是完整的SBT日志。

我不明白为什么版本段是working@HP022L.corp.umbrella.com而不是版本号。

如果有人可以将我指向正确的方向来解决此错误。

这是我的build.sbt:

import Dependencies._
ThisBuild / scalaVersion := "2.12.8"
ThisBuild / version := "0.1.0-SNAPSHOT"
ThisBuild / organization := "com.umbrella"
ThisBuild / organizationName := "Umbrella"
lazy val root = (project in file("."))
  .settings(
    name := "custom-mapper",
    libraryDependencies ++= Seq(
      scalaTest % Test,
      "org.keycloak" % "keycloak-core" % "6.0.1",
      "org.keycloak" % "keycloak-server-spi" % "6.0.1" % "provided",
      "org.keycloak" % "keycloak-server-spi-private" % "6.0.1" % "provided",
      "org.jboss.spec.javax.ws.rs" % "jboss-jaxrs-api_2.0_spec" % "1.0.1.Final",
      "org.keycloak" % "keycloak-admin-client" % "6.0.1",
      "org.keycloak" % "keycloak-services" % "6.0.1" % "provided" // this dependency is failing to resolve
    )
  )

SBT解析器:

sbt:custom-mapper> show fullResolvers
[info] * Raw(ProjectResolver(inter-project, mapped: ))
[info] * FileRepository(local, Patterns(ivyPatterns=Vector(${ivy.home}/local/[organisation]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)([branch]/)[revision]/[type]s/[artifact](-[classifier]).[ext]), artifactPatterns=Vector(${ivy.home}/local/[organisation]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)([branch]/)[revision]/[type]s/[artifact](-[classifier]).[ext]), isMavenCompatible=false, descriptorOptional=false, skipConsistencyCheck=false), FileConfiguration(true, None))
[info] * FileRepository(local-preloaded-ivy, Patterns(ivyPatterns=Vector(/home/vulcan/.sbt/preloaded/[organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext]), artifactPatterns=Vector(/home/vulcan/.sbt/preloaded/[organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext]), isMavenCompatible=false, descriptorOptional=false, skipConsistencyCheck=false), FileConfiguration(true, None))
[info] * local-preloaded: file:////home/vulcan/.sbt/preloaded/
[info] * public: https://repo1.maven.org/maven2/
[info] * sbt-maven-releases: https://repo.scala-sbt.org/scalasbt/maven-releases/
[info] * sbt-maven-snapshots: https://repo.scala-sbt.org/scalasbt/maven-snapshots/
[info] * URLRepository(typesafe-ivy-releases, Patterns(ivyPatterns=Vector(https://repo.typesafe.com/typesafe/ivy-releases/[organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext]), artifactPatterns=Vector(https://repo.typesafe.com/typesafe/ivy-releases/[organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext]), isMavenCompatible=false, descriptorOptional=false, skipConsistencyCheck=false))
[info] * URLRepository(sbt-ivy-snapshots, Patterns(ivyPatterns=Vector(https://repo.scala-sbt.org/scalasbt/ivy-snapshots/[organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext]), artifactPatterns=Vector(https://repo.scala-sbt.org/scalasbt/ivy-snapshots/[organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext]), isMavenCompatible=false, descriptorOptional=false, skipConsistencyCheck=false))

问题是传递依赖性,解决方案是将依赖性标记为非传递性,现在该项目编译了。

如SBT文档中所述:

禁用传递性

默认情况下,这些声明获取所有项目依赖性, 过渡性。在某些情况下,您可能会发现依赖关系 为其构建的项目不需要列出。使用的项目 例如,Felix Osgi框架仅明确要求其 主罐进行编译和运行。避免与 不及物((或not transitive((,如此示例:

libraryDependencies += "org.apache.felix" % "org.apache.felix.framework" % "1.8.0" intransitive()

最新更新