我正在考虑使用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()
)
任何帮助都会非常感激。感谢
答案 0 :(得分:1)
问题似乎是使用shell语法,即使用单引号,!
。如您所知,它认为'test
和commit
以及from
和release
以及plugin'
都是单独的参数。
Java Process
这些东西,像!
这样的Scala方法只是薄包装器,不使用shell运行进程,因此shell语法不适用。
如果你改为Seq("svn", "commit", "-m", ...)
,它应该有用。单独传递参数意味着您不需要单引号来分隔参数。