2016-09-21 65 views
0

这里是Intellij IDE的新手,没有Java背景。我已经看过Build Definition以获得关于如何组织我的Scala文件的一个简单的想法,但他们的示例并未涵盖所附的SBT项目的完整结构。在基于SBT的scala项目中组织文件

你能建议每个文件夹应该用于什么(例如,我的源文件应该去哪里等),并指出我可以更多地阅读的来源。

非常感谢 Project structure

回答

4

它被描述相当不错的位置: http://www.scala-sbt.org/0.13.5/docs/Getting-Started/Directories.html

但总结。

.idea: 这包含您的创意项目的项目文件,并且与sbt本身没有直接关系。然而,想法(如果启用了自动刷新)更新自己的项目,每当sbt构建文件改变。

项目: 这包含sbt项目文件,主要构建文件(以sbt结尾的文件)的execpt。 Sbt构建本身是基于scala的,如果你需要在你的构建中包含一些scala代码,那么你可以将scala源文件放在这个目录中。这些文件的代码可以在您的构建系统中使用,而不是您项目本身的一部分。为了真正理解构建是如何进行的,那么您需要了解构建应该放置构建的sbt文件和scala文件的差异。当你运行sbt时,它会搜索你站在的目录中的.sbt文件,当这些文件被找到时,它将搜索项目目录中的scala文件。这些文件一起是构建系统的源代码,但由于它们是源文件,因此需要在构建系统之前进行构建。为了构建这个构建系统,sbt使用sbt。所以需要构建系统来构建构建系统。因此,它会在项目目录中查找sbt文件,并在项目/项目中查找此版本的scala文件,并构建这些文件以获取构建系统,这可以构建构建系统(可以构建您的项目)。实际上,它可以继续递归到任何项目/项目/ p ...目录,直到找到不包含scala文件的项目文件夹,因此在使用前不需要构建。

项目中的目标文件夹是构建定义的sbt构建的目标文件夹。请参阅下面的目标文件夹。

通常情况下,您不需要担心这一点,但请记住,您的根目录中的build.sbt是您的项目的构建脚本。 project/plugins.sbt定义为您的构建系统激活的插件,而project/build.properties包含speciel sbt属性。目前我唯一的sbt属性是应该使用什么版本的sbt。

src: 这就是你放置项目源文件的地方。你应该在src/main/java中放置任何java源文件,在src/main/scala中放置scala源文件。资源被放置在src/main/resources中。

通常使用src/main/scala_2.11文件夹,如果你有一些代码不能与不同版本的scala二进制兼容。在这种情况下,当为不同版本的scala构建时,您将能够配置sbt以使用不同的源文件。你正确的不需要这个,所以我建议只删除src/main/scala_2.11文件夹。

测试源放在src/test/java和source/test/scala中,测试资源放在src/test/resources中。

目标 此文件夹是sbt的目标文件夹。所有编译的文件,生成的软件包等都放置在这个目录中。

这个目录中的大多数东西通常不那么有趣,因为它大部分是内部的东西。但是,如果您通过调用sbt package来构建一个jar文件,那么它将被放置在target/scala-x中(其中x是scala版本)。还有很多不同的插件,可以用不同的方式打包应用程序,并且他们通常也会将包文件放置在目标目录的某个位置。

+0

非常感谢 – beginner