如何将JFROG神器添加到sbt.build文件中?
How to add JFROG artifactory to the sbt.build file?
我正在使用 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
我该如何解决这个问题?
如果您想从私有神器下载 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 artifactory repo,你必须指定凭据和 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 地址或域
我正在使用 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
我该如何解决这个问题?
如果您想从私有神器下载 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 artifactory repo,你必须指定凭据和 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 地址或域