在包装胖子罐之前执行sbt任务

时间:2019-10-07 15:30:00

标签: sbt sbt-assembly

我为项目的dummy_task目录中的一些资源文件编辑编写了一个小型pass_final插件(实际上,它的工作原理类似于sbt概要文件)。现在,当我编写并测试了简单的自定义sbt任务(我们将其称为target)时,我希望在运行maven时在资源复制和jar创建之间执行它。但是,我找不到任何有关sbt-assembly插件提供的interpolateParameters任务“在幕后”执行的任务的文档。实际上,我怀疑是否有可能。

因此,我有两个问题:是否可以在sbt assembly的compile + copyResources和“创建jar”步骤之间以某种方式执行我的任务?如果没有,是否可以在不创建自己的assembly插件分支的情况下实现我想要的?

1 个答案:

答案 0 :(得分:0)

我通过使assembly取决于我的任务interpolateParametersinterpolateParameters取决于products来解决了这个问题。这是我生成的带有解决方案的build.sbt文件的一部分:

lazy val some<oduleForFatJar = (project in file("some/path"))
  .dependsOn(
    someOtherModule % "test->test;compile->compile"
  )
  .settings(
    name := "some module name",
    sharedSettings,
    libraryDependencies ++= warehouseDependencies,
    mainClass in assembly := Some("com.xxxx.yyyy.Zzzz"),
    assemblyJarName in assembly := s"some_module-${version.value}.jar",
    assembly := {
      assembly dependsOn(interpolateParameters) value
    },
    interpolateParameters := {
      interpolateParameters dependsOn(products) value
    },
    (test in assembly) := {}
  )

希望它可以帮助某人。

相关问题