Как добавить артефакт JFROG в файл sbt.build? - PullRequest
1 голос
/ 16 апреля 2020

Я использую 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

Как я могу исправить эту проблему?

1 Ответ

2 голосов
/ 16 апреля 2020

Если вы хотите загрузить файлы 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"
)

Если вы хотите опубликовать sh в репозитории 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-адресом или доменом

...