All Projects → fernandoracca → Skeleton

fernandoracca / Skeleton

Simple Scala project template

Programming Languages

scala
5932 projects

Labels

Projects that are alternatives of or similar to Skeleton

Play Reactive Slick
This is Play Template with a nice User Interface. If you want to use Play as web framework and Postgres as Database then this demo project can be used as a starting point for your application.
Stars: ✭ 40 (-60%)
Mutual labels:  sbt
Scala Js Chrome
ScalaJS bindings for Chrome Extention/App and ChromeOS APIs
Stars: ✭ 73 (-27%)
Mutual labels:  sbt
Android Vertical Stepper View
A vertical stepper implementation of the material design specification
Stars: ✭ 87 (-13%)
Mutual labels:  sbt
Sbt Multi Jvm
Multi-JVM testing in sbt
Stars: ✭ 50 (-50%)
Mutual labels:  sbt
Scala Native.g8
Giter8 template for a minimal project that uses Scala Native.
Stars: ✭ 61 (-39%)
Mutual labels:  sbt
Proscalafx
Pro JavaFX2 book source codes translated to ScalaFX
Stars: ✭ 83 (-17%)
Mutual labels:  sbt
Rhodddoobie
My little sandbox for playing around with the FP + OOP + DDD combination, in particular using Rho, doobie, Docker, testing, etc in a project.
Stars: ✭ 38 (-62%)
Mutual labels:  sbt
Sbt Jib
sbt version of sbt jib: https://github.com/GoogleContainerTools/jib
Stars: ✭ 97 (-3%)
Mutual labels:  sbt
Ore
Repository software for Sponge plugins and Forge mods
Stars: ✭ 63 (-37%)
Mutual labels:  sbt
Scala Ddd Example
🎯 λ Hexagonal Architecture + DDD + CQRS applied in Scala using Akka HTTP
Stars: ✭ 86 (-14%)
Mutual labels:  sbt
Sbt Frege
Frege support for sbt
Stars: ✭ 51 (-49%)
Mutual labels:  sbt
Scala Graalvm Docker
Docker images to build and generate native artifacts using GraalVM
Stars: ✭ 60 (-40%)
Mutual labels:  sbt
Sbt Dirty Money
clean Ivy2 cache
Stars: ✭ 84 (-16%)
Mutual labels:  sbt
Finagle Metrics
Easy way to send Finagle metrics to Codahale Metrics library
Stars: ✭ 41 (-59%)
Mutual labels:  sbt
Sbt Newrelic
New Relic monitoring integration for SBT with sbt-native-packager
Stars: ✭ 87 (-13%)
Mutual labels:  sbt
Sbt Play Gulp
Gulp asset pipeline for Play Framework
Stars: ✭ 38 (-62%)
Mutual labels:  sbt
Sbt Dependency Graph
sbt plugin to create a dependency graph for your project
Stars: ✭ 1,223 (+1123%)
Mutual labels:  sbt
Scala Debugger
Scala libraries and tooling utilizing the Java Debugger Interface.
Stars: ✭ 100 (+0%)
Mutual labels:  sbt
Freeacs
(Seeking maintainer) Free TR-069 ACS that can run (mostly) anywhere.
Stars: ✭ 90 (-10%)
Mutual labels:  sbt
Scala Play Angular Seed
🍀 Scala Play 2.7.x + Angular 8 with Angular CLI seed project with full-fledged build process
Stars: ✭ 85 (-15%)
Mutual labels:  sbt

Skeleton

This project aims to simplify creating a project from scratch, ready to use in your IDE. It's arguably simpler than Typesafe activator or g8 because it doesn't require any additional tools, just clone, build and run. It provides a simple way to have a project running with the following tools configured:

 Scala 2.13 with strict compiler flags
 SBT 1.3+
 ScalaTest 3.2+
 ScalaCheck for Property Based testing
 Scalafmt for automated code formatting

Requires

  • Please download latest version of SBT. As of last publication of Skeleton:
  • sbt 1.3.8

Use

Clone and update the project name from build.sbt

$ git clone git://github.com/fractal/skeleton my-project
$ cd my-project
$ rm -rf .git
$ vi build.sbt # change name to my-project, and organization to something that suits you
$ sbt
> test

IDE

Great Scala support on:

Test

The best feature of SBT is incremental compilation. This is most evident when testing.

> ~ test

Be warned, it's addictive. You'll never want to code in any other statically compiled language without this feature.

Test a single TestSuite

> test-only package.subpackage.Class

Useful commands

Run a scala REPL with all the project dependencies available.

> console

Run will auto scan and run a Main class.

> run

Automatic code formatting with:

> scalafmtAll

Multi Project Version:

Multiple modules and package and deployment.

fractal/multi-project-skeleton

SBT Launch useful configuration options

Some of these configuration options are quite important to know when setting up a project behind a company proxy. Configure then in your ~/.sbt/conf/sbtconfig.txt or sbtopts

# Reserver a decent amount of memory for the SBT JVM  

-Xms256M
-Xmx2048M
-XX:ReservedCodeCacheSize=128m

# Set additional SBT options and HTTP Proxies if needed

# -Dsbt.ivy.home=<m2 repo>
-Dsbt.log.format=true

# -Dhttp.proxyHost=<your_proxy_host>
# -Dhttp.proxyPort=<your_proxy_port>
# -Dhttp.nonProxyHosts="<dont_use_proxy_for_these_addresses>"

Final Remarks

These settings are for convenience when setting up a project from scratch, and you want to get up and running quickly. There are probably better ways in the long run, since much of this configuration can be defined in your sbt home, and shared by any project. However, in this way, any developer who fetches the project will have the same settings as you.

Author

Fernando Racca

@quant_leap

fractal/skeleton

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].