在SBT构建期间执行svn提交

时间:2016-12-19 15:46:03

标签: scala svn sbt

我正在考虑使用sbt release插件发布一个发布过程,但是当我尝试将SVN作为发布步骤提交时,我收到错误。

  

svn:提交失败(详情如下):   svn:' / tmp / checkout / svn-test / commit'不受版本控制

" / TMP /结帐/ SVN测试/"是我项目的正确途径。当我将ReleaseStep定义为提交SVN时,我怀疑我做错了什么:

我的build.sbt发布配置如下:

lazy val execScript = taskKey[Unit]("Commit to Subversion")

execScript := {
  "svn commit -m 'test commit from release plugin'" !
}

val commitToSVN = () => ReleaseStep(
  action = releaseStepTask(execScript)
)

releaseProcess := Seq[ReleaseStep](
  ReleaseTransformations.checkSnapshotDependencies,
  ReleaseTransformations.inquireVersions,
  ReleaseTransformations.setReleaseVersion,
  commitToSVN()
)

任何帮助都会非常感激。感谢

1 个答案:

答案 0 :(得分:1)

问题似乎是使用shell语法,即使用单引号,!。如您所知,它认为'testcommit以及fromrelease以及plugin'都是单独的参数。

Java Process这些东西,像!这样的Scala方法只是薄包装器,不使用shell运行进程,因此shell语法不适用。

如果你改为Seq("svn", "commit", "-m", ...),它应该有用。单独传递参数意味着您不需要单引号来分隔参数。