我为项目的dummy_task
目录中的一些资源文件编辑编写了一个小型pass_final
插件(实际上,它的工作原理类似于sbt
概要文件)。现在,当我编写并测试了简单的自定义sbt任务(我们将其称为target
)时,我希望在运行maven
时在资源复制和jar创建之间执行它。但是,我找不到任何有关sbt-assembly插件提供的interpolateParameters
任务“在幕后”执行的任务的文档。实际上,我怀疑是否有可能。
因此,我有两个问题:是否可以在sbt assembly
的compile + copyResources和“创建jar”步骤之间以某种方式执行我的任务?如果没有,是否可以在不创建自己的assembly
插件分支的情况下实现我想要的?
答案 0 :(得分:0)
我通过使assembly
取决于我的任务interpolateParameters
和interpolateParameters
取决于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) := {}
)
希望它可以帮助某人。