将 jar 文件发布到 GitLab 包存储库

问题描述 投票:0回答:2

我有一个

scala
项目,并且使用
SBT
我能够从中生成一个
jar
文件。

我的下一个挑战是将生成的 jar 文件发布到 Gitlab 的包存储库中,以便我可以在另一个

scala
项目中引用此 jar 文件(模块)。 我找到了一些资源,使用 MAVEN 或 SBT .. 但不知道如何开始,因为我是新手,而且有点迷失。是否也可以使用
SBT
发布文件?

参考文献1:我迷失在GRADLE和MAVEN之间

参考2:我对此迷失了,因为我不清楚如何实现它以及maven存储库和jar文件之间的关系是什么。

非常感谢任何简单的指导/澄清。

scala maven jar gitlab
2个回答
0
投票

你应该看看SBT的发布方式:https://www.scala-sbt.org/1.x/docs/Publishing.html

然后将“存储库 URL”修改为您的 Gitlab 的 URL。并遵循 Gitlab 文档必须定义任何特定配置。


0
投票

GitLab 现在(自 2023 年起)原生支持 sbt 推/拉,请参阅:https://gitlab.com/gitlab-org/gitlab/-/issues/408479

object Registry {
  val credentials: Credentials = sys.env
    .get("CI_JOB_TOKEN") // automatically generated token in the gitlab-ci
    .map(Credentials("GitLab Packages Registry", "gitlab.com", "gitlab-ci-token", _))
    .getOrElse(Credentials(Path.userHome / ".sbt" / ".credentials")) // for local development

  val additionalResolvers: Seq[MavenRepository] = Seq(
    "GitLab" at
      "https://gitlab.com/api/v4/projects/<PROJECT_ID>/packages/maven"
  )

  def publishToGitlab(projectId: Int): Option[MavenRepository] =
    Some("gitlab" at s"https://gitlab.com/api/v4/projects/$projectId/packages/maven")
}

build.sbt

ThisBuild / resolvers ++= Registry.additionalResolvers
ThisBuild / credentials += Registry.credentials
ThisBuild / publishTo := Registry.publishToGitlab(37794088) // Gitlab project id

.sbt/.credentials

realm=GitLab Packages Registry
host=gitlab.com
user=Private-Token
password=<YOUR-TOKEN>
© www.soinside.com 2019 - 2024. All rights reserved.