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) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |