Публикация sh scala проекта в azure фид с использованием sbt: невозможно найти учетные данные для - PullRequest
2 голосов
/ 17 апреля 2020

Я хочу опубликовать sh мой scala проект (= мульти проект), используя "stb publi sh" в моем azure тесте подачи DevOps. Для этого я делаю настройки ниже в соответствии с запросом.

publishTo := {Some("azure" at "https://pkgs.dev.azure.com/anyTeam/blub12351234154124/_packaging/Test/maven/v1")}

credentials += Credentials("", "pkgs.dev.azure.com", "Username", "5mctdrtasdasdLongAccesstokenwithManyCharacterscytgcg2hlura")

Но я всегда получаю сообщение

Невозможно найти учетные данные для [https://pkgsprodsu3weu.app.pkgs.visualstudio.com/ @ pkgs.dev. azure .com]

, и логическая аутентификация завершается неудачно с

401 Unauthorized

Я уже пробовал следовать советам в выпусках https://github.com/sbt/sbt/issues/5492 и https://github.com/sbt/ivy/pull/36, но без результата

Я также протестировал плагин https://github.com/arktekk/sbt-aether-deploy

Ответы [ 2 ]

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

Я тестировал различные способы подключения к каналу Azure Artifacts, используя sbt. Из всех протестированных комбинаций я нашел именно ту, которая, кажется, работает. Я тестировал, используя sbt v1.3.10 , который является последней официально выпущенной версией на момент написания.

Определение версии sbt в build.properties:

sbt.version = 1.3.10

На самом деле, используя фид Azure Artifacts в build.sbt:

// Go back to Apache Ivy for library management.
// Coursier is currently not able to work with Azure Artifacts feeds.
ThisBuild / useCoursier := false

// Specify credentials in a properties file.
// Not 100% sure if I tested hard coded credentials.
// I did test specifying credentials in ~/.m2/settings.xml which did not work
// (but I'm not sure if either Ivy or Coursier are meant to pick them up).
credentials += Credentials(Path.userHome / ".sbt" / "azureArtifactsFeed.credentials")

// Specify the resolver using the following syntax.
// I tested creating an Ivy resolver using Resolver.url() with Resolver.mavenStylePatterns
// (thinking we're using Ivy anyways and it seems to support maven repos), but that failed
// as well (again, I'm not 100% sure if that's supposed to work in the first place).
resolvers += "SOME_NAME" at
  "https://pkgs.dev.azure.com/ORGANIZATION/FEED_UUID/_packaging/FEED_NAME/maven/v1"

// With the setup so far, we should already be able to consume artifacts.
// Now for the publishing part:
publishTo := Some("SOME_NAME" at
  "https://pkgs.dev.azure.com/ORGANIZATION/FEED_UUID/_packaging/FEED_NAME/maven/v1")

И, наконец, важно, чтобы область оставалась пустой в файле свойств для учетных данных.

в ~/.sbt/azureArtifactsFeed.credentials:

realm=
host=pkgs.dev.azure.com
user=ORGANIZATION
password=USER_TOKEN_WITH_PACKAGING_READ_AND_WRITE_SCOPE
1 голос
/ 20 апреля 2020

Если (возможно) вы используете кросс-скомпилированные проекты (используя sbt-crossproject ), вам необходимо добавить учетные данные в настройки проекта, который вы хотите опубликовать sh, например так:

lazy val myProject = crossProject(JSPlatform, JVMPlatform).in(file("."))
  .settings(
    organization := "com.example",
    name := "my project name",
    credentials += Credentials("", "pkgs.dev.azure.com", "Username", "5mctdrtasdasdLongAccesstokenwithManyCharacterscytgcg2hlura")
    // ...
)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...