Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>The question is in danger of just generating lots of opinions; it would be better to have a clear list of requirements or a description of your environment, previous knowledge, etc.</p> <p>FWIW, there are more opinions in <a href="http://www.scala-lang.org/node/11935" rel="noreferrer">this scala mailing list thread</a>.</p> <p>My 2c are: Go with sbt if you don't have specific requirements</p> <ul> <li>for simple projects, it's totally effortless (you don't even need a build file until you have dependencies)</li> <li>it is commonly used across Scala open source projects. You can easily learn about configuration by peeking into other people's projects. Plus many projects assume you use sbt and provide you with <a href="https://github.com/milessabin/shapeless#using-shapeless" rel="noreferrer">ready-made copy+paste instruction</a> for adding them as a dependency to your project.</li> <li>if you use IntelliJ IDEA, it can be totally integrated. You can <a href="https://github.com/orfjackal/idea-sbt-plugin/wiki" rel="noreferrer">have IDEA use sbt</a> to continuously compile your project, and vice versa you can use sbt to quickly <a href="https://github.com/mpeltonen/sbt-idea" rel="noreferrer">generate IDEA projects</a>. The last is extremely useful if you are in a 'snapshot' cycle with depending on other of your own libraries which are bumped from minor version to minor version -- just close the project, update the version in the build file, re-run the <code>gen-idea</code> task, and re-open the project: updates done.</li> <li>comes ready with most tasks you will need (<code>compile</code>, <code>test</code>, <code>run</code>, <code>doc</code>, <code>publish-local</code>, <code>console</code>) -- the <code>console</code> is one of the best features.</li> <li>some people highlight the feature that dependencies can be source repositories directly grabbed from GitHub. I haven't used this so can't comment here.</li> </ul> <p>Some people hate sbt because it uses Ivy for dependency management (I can't comment on its pros and cons, but most of the time it is a non-issue), some people hate sbt because you specify the build file in terms of a Scala DSL instead of XML. Some people were disappointed that sbt's format changed from v0.7 to v0.10, but obviously, migration won't affect you if you start from scratch.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload