Я тестировал различные способы подключения к каналу 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