2012-10-31 22 views
0

我已经尝试了一些办法,如addCommandAlias("release", ";clean ;release"),以及喜欢的东西:如何在发布之前让sbt-release插件自动清理?

ReleaseKeys.releaseProcess ~= { 
    (seq: Seq[ReleaseStep]) => 
    cleanStep +: seq 
} 

其中cleanStep是这样的:

lazy val cleanStep = ReleaseStep(
    action = st => Project.extract(st).runTask(clean, st)._1 
) 

lazy val cleanStep = ReleaseStep(
    action = st => Project.extract(st).runAggregated(clean, st) 
) 

基本上,没有这些方法的工作。 runTask对于一个简单的build.sbt版本工作正常,但似乎不适用于多模块版本。

任何想法?

谢谢!

回答

1

这结束了工作。我真的不明白runAggregated应该做什么;我会认为它会做这件事。但无论如何,这有一些直观的意义。建议仍然赞赏,因为我觉得我失去了一些东西。

lazy val cleanStep = ReleaseStep(
    action = st => { 
     implicit val display = Project.showContextKey(st) 
     val session = Project.session(st) 
     val structure = Project.structure(st) 
     (structure.allProjectRefs foldLeft st) { 
     case (s: State, p: ProjectRef) => 
      Extracted(structure, session, p).runTask(clean, s)._1 
     } 
    } 
) 
相关问题