project目录下的几个文件实际上都是非必须存在的,可以根据情况添加。

    build.properties文件声明使用的要使用哪个版本的SBT来编译当前项目, 最新的sbt boot launcher可以能够兼容编译所有0.10.x版本的SBT构建项目,比如如果我使用的是0.12版本的sbt,但却想用0.11.3版本的sbt来编译当前项目,则可以在build.properties文件中添加sbt.version=0.11.3来指定。 默认情况下,当前项目的构建采用使用的sbt boot launcher对应的版本。

    plugins.sbt文件用来声明当前项目希望使用哪些插件来增强当前项目使用的sbt的功能,比如像assembly功能,清理ivy local cache功能,都有相应的sbt插件供使用, 要使用这些插件只需要在plugins.sbt中声明即可,不用自己去再造轮子:

    1. resolvers += Resolver.url("git://github.com/jrudolph/sbt-dependency-graph.git")
    2. resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/"
    3. addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.1.0")
    4. addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.6.0")

    使用sbt-idea来生成IDEA IDE对应的meta目录和文件,以便能够使用IDEA来编写项目代码; 使用sbt-dependency-graph来发现项目使用的各个依赖之间的关系;

    为了能够成功加载这些sbt插件,我们将他们的查找位置添加到resolovers当中。

    这里注意一个比较有趣的地方就是,sbt支持直接将相应的github项目作为依赖或者插件依赖,而不用非得先将相应的依赖或者插件发布到maven或者ivy的repository当中才可以使用。