如何防止sbt在非sbt目录中运行?

时间:2014-07-25 14:27:10

标签: sbt

免责声明:我记得以前有过关于此事的问题。现在找不到。

如果在非sbt-project目录中启动sbt命令,它会立即开始修改目录(s.a.下载文件并创建target/)。这是不受欢迎的行为,因为所需的只是一个cd ..而且你正在设置这些鬼项目。

有没有一种标准方法可以防止这种情况发生?

我做了一个小脚本(在~/bin/sbt.sh中)并将其设置为sbt(下面)的别名。但是,我希望能够提供一种通用的,更简单的方式让自己感到安全。

#!/bin/sh
if [ -f ./build.sbt ] || [ -f project/build.scala ] ; then
  /usr/local/bin/sbt $@
else
  echo "No 'build.sbt' or 'project/build.scala' found - may not be a sbt project?"
  exit 1  
fi

这是在OS X上使用HomeBrew的sbt 0.13.5。

1 个答案:

答案 0 :(得分:0)

这是不可能的。事实上,sbt的功能是将任何目录视为项目。我个人非常喜欢它。

至于用另一个回答你的问题 - 为什么你认为某个sbt项目应该有build.sbtproject/build.scala?那么其他*.sbt个文件或project/*.scala个文件(更不用说project/*.sbt个文件等)呢?