java - 如何将 JFROG 工件添加到 sbt.build 文件中?

标签 java scala playframework sbt

我正在使用 sbt 1.3.9,我需要通过授权解析来自 Jfrog artifactory 的依赖项。我有以下 sbt.build 文件:

scalaVersion := "2.13.1"
javacOptions ++= Seq("-source", "11", "-target", "11")
resolvers ++= Seq(
  Resolver.ssh("my-repo", "https://artifactory.myrepo") as("usr", "password")
)
credentials += Credentials("my-repo", "https://artifactory.myrepo", "usr", "password")
libraryDependencies ++= Seq(
  guice,
  ...
)

当我尝试构建我的应用程序时,出现以下异常:

Not found
not found: /Users/john/.ivy2/local/com.examples/mylib/0.0.1-SNAPSHOT/ivys/ivy.xml
not found: https://repo1.maven.org/maven2/com/examples/mylib/0.0.1-SNAPSHOT/mylib-0.0.1-SNAPSHOT.pom
(ssExtractDependencies) sbt.librarymanagement.ResolveException: Error downloading com.examples:mylib:0.0.1-SNAPSHOT
Not found
Not found
not found: /Users/john/.ivy2/local/com.examples/mylib/0.0.1-SNAPSHOT/ivys/ivy.xml
not found: https://repo1.maven.org/maven2/com/examples/mylib/0.0.1-SNAPSHOT/mylib-0.0.1-SNAPSHOT.pom
Total time: 3 s, completed Apr 16, 2020, 3:02:27 PM

如何解决这个问题?

最佳答案

如果您想从私有(private)工件下载 jar,则必须指定要搜索的存储库和凭据:

resolvers ++= Seq(
  "Artifactory snapshots".at("http://X.X.X.X/artifactory/sbt-dev-local/"),
  "Artifactory releases".at("http://X.X.X.X/artifactory/sbt-release-local/"),
  "Artifactory maven releases".at(
    "http://X.X.X.X/artifactory/mvn-local-release/"
  )
)
credentials += Credentials(
  "Artifactory Realm",
  "X.X.X.X",
  "yourlogin",
  "yourpassword"
)

如果您想发布到 JFROG 工件存储库,则必须指定凭据和 publishTo 值:

credentials += Credentials(
  "Artifactory Realm",
  "X.X.X.X",
  "yourlogin",
  "yourpassword"
)
publishTo := {
  if (isSnapshot.value)
    Some(
      "Artifactory Realm".at(
        "http://X.X.X.X/artifactory/sbt-dev-local;build.timestamp=" + new java.util.Date().getTime
      )
    )
  else
    Some("Artifactory Realm".at("http://X.X.X.X/artifactory/sbt-release-local"))
}

就我而言,X.X.X.X 是 IP 地址。您应该将它们替换为真实的 IP 地址或域

关于java - 如何将 JFROG 工件添加到 sbt.build 文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61251550/

相关文章:

java - 玩!框架运行抛出 UnsupportedClassVersionError

java - 在 Play 上使用 Clover 执行代码覆盖!使用 Ant 的框架应用程序

java - 这是匈牙利符号吗?

java - Jtree:将背景颜色设置为最大单双击节点

java - Java 外来标识符的状态

java - 并行程序在scala中运行

scala - Play/Scala : use Redirect in ActionBuilder

scala - 如何在 Scala 中使用循环法将嵌套列表展平?

java - 我不能在 Servlet url-pattern 中添加任何目录路径吗?

java - 如何使用 Java 在 Play 框架中读取 JSON 文件