加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 打包工件而不发布它

发布时间:2020-12-16 08:44:15 所属栏目:安全 来源:网络整理
导读:我有一个多项目构建,我在其中定义一个应用程序,一个api库,一个api库的实现. 应该发布API库.应该使用通用打包器插件打包应用程序(连同它的依赖项). lazy val app = project.in(file(".")) .enablePlugins(PlayScala) .dependsOn(api,impl,client % "test-test
我有一个多项目构建,我在其中定义一个应用程序,一个api库,一个api库的实现.

应该发布API库.应该使用通用打包器插件打包应用程序(连同它的依赖项).

lazy val app = project.in(file("."))
  .enablePlugins(PlayScala)
  .dependsOn(api,impl,client % "test->test")
  .aggregate(api,client)
  .settings(commonSettings:_*)
  .settings(
    publishArtifact := false
  )

lazy val api =
  project.in(file("modules/api"))
    .settings(name := "app-api")

lazy val client = project.in(file("modules/client"))
  .dependsOn(api)
  .settings(name := "app-client")

lazy val impl = project.in(file("modules/impl"))
  .dependsOn(api)
  .settings(name := "app-impl")
  .settings(
    publishArtifact := false
  )

publishArtifact:= false可防止创建jar工件app-impl.这样做的结果是它不包含在dist和stage结果中.

有没有办法(除了设置发布:=())以这样的方式配置项目,它将产生一个工件但不发布它?

解决方法

Here是禁用项目中的publishArtifact将禁用触发jar的创建的原因:由于某种原因,所有pkgTasks(导致packedArtifacts)都依赖于publishArtifact的值.

我不知道确实是这种情况的原因,但我认为有一种假设认为,当你不想发布时打包会很浪费.显然,通用打包器捆绑所有人工制品的行为正在被绊倒,我不确定该修补程序是在插件中还是在sbt中.

无论哪种方式,我建议使用publish:=(),作为一种替代方案,我发现更详细:

publishLocalConfiguration :=
  Classpaths.publishConfig(artifacts = Map(),ivyFile = None,checksums = Nil),publishConfiguration :=
  Classpaths.publishConfig(artifacts = Map(),checksums = Nil)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读