我有一个项目,我在其中构建了一个 sbt 设置插件,我打算在所有其他项目中使用该插件。在这个 sbt 插件项目中,我定义了几个常见的设置,如解析器、scm 信息、其他静态设置。
然后,我将此设置发布到 GitHub 中的组织包中,我什至可以看到它可用,如下所示:https://github.com/orgs/open-electrons/packages
然后,我在其他项目中使用此 sbt 设置插件,方法是将其添加到 plugins.sbt 项目中,如下所示:
addSbtPlugin("com.openelectrons" % "openelectrons-sbt-settings" % "0.0.1")
当我运行这个项目(比如项目 A)时,它有这个 build.sbt:
import SharedSettings._
lazy val commonSettings = SharedSettings.settings
// Build definition for the ocpp-gateway-server project
lazy val ocppGatewayServer = (project in file("."))
.enablePlugins(PlayScala, DockerPlugin)
.settings(
commonSettings,
....
....
SharedSettings 来自 GitHub 包中提供的 sbt 设置插件。然后,我将所有这些设置包含在该项目中,如上所述。 SharedSettings 实际上包含如下定义的解析器:
// Dependency resolvers
val sharedResolvers: Seq[Resolver] = Seq(
Resolver.mavenCentral,
"Typesafe Releases" at "https://repo.typesafe.com/typesafe/releases/",
"Typesafe Snapshots" at "https://repo.typesafe.com/typesafe/snapshots/",
"GitHub Packages" at "https://maven.pkg.github.com/open-electrons/open-electrons-templates"
) ++ Resolver.sonatypeOssRepos("snapshots") ++ Resolver.sonatypeOssRepos("releases")
当我运行项目 A 时,我什至看不到 GitHub 包已解析。该构建会在 repo1 和这 3 个位置中查找 openelectrons-sbt-settings 依赖项:
[error] not found: https://repo1.maven.org/maven2/com/openelectrons/openelectrons-sbt-settings_2.12_1.0/0.0.1/openelectrons-sbt-settings-0.0.1.pom
[error] not found: /home/runner/.ivy2/localcom.openelectrons/openelectrons-sbt-settings/scala_2.12/sbt_1.0/0.0.1/ivys/ivy.xml
[error] not found: https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.openelectrons/openelectrons-sbt-settings/scala_2.12/sbt_1.0/0.0.1/ivys/ivy.xml
[error] not found: https://repo.typesafe.com/typesafe/ivy-releases/com.openelectrons/openelectrons-sbt-settings/scala_2.12/sbt_1.0/0.0.1/ivys/ivy.xml
我没有看到任何尝试从 GitHub Packages 下载它的日志行。我该如何解决这个问题?
我相信要找到插件,需要在
resolvers
文件本身中覆盖 plugins.sbt
(这可能是评论中提到的:如果您将插件的解析器放在插件本身中,你正在创建一个引导问题)。
试试这个:
resolvers += "GitHub Packages" at "https://maven.pkg.github.com/open-electrons/open-electrons-templates"
addSbtPlugin("com.openelectrons" % "openelectrons-sbt-settings" % "0.0.1")