【问题标题】:Sbt error resolving mvn repository dependency解决 mvn 存储库依赖关系的 Sbt 错误
【发布时间】:2019-09-30 09:34:32
【问题描述】:

我正在尝试将 this 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]  ::::::::::::::::::::::::::::::::::::::::::::::

here 是完整的 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))

【问题讨论】:

    标签: scala maven sbt


    【解决方案1】:

    问题是传递依赖,解决方案是将依赖标记为不可传递,现在项目编译。

    sbt docs中所述:

    禁用传递性

    默认情况下,这些声明会获取所有项目依赖项, 及物的。在某些情况下,您可能会发现依赖项 为一个项目列出的不是它构建所必需的。项目使用 例如,Felix OSGI 框架仅明确要求其 main jar 编译和运行。避免使用 intransitive() 或 notTransitive(),如下例所示:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-09
      • 2014-12-18
      • 2014-01-12
      • 1970-01-01
      • 2016-02-13
      • 1970-01-01
      • 2013-10-27
      • 2012-02-02
      相关资源
      最近更新 更多