sbt-revolver alternatives and similar packages
Based on the "Sbt plugins" category.
Alternatively, view sbt-revolver alternatives based on common mentions on social networks and blogs.
coursier9.1 8.5 sbt-revolver VS coursierPure Scala Artifact Fetching
sbt-native-packagersbt Native Packager
sbt-assembly8.9 2.8 sbt-revolver VS sbt-assemblyDeploy über-JARs. Restart processes. (port of codahale/assembly-sbt)
sbt-dependency-graphsbt plugin to create a dependency graph for your project
sbteclipse7.8 8.8 sbt-revolver VS sbteclipsePlugin for sbt to create Eclipse project definitions
sbt-jmh7.4 0.0 sbt-revolver VS sbt-jmh"Trust no one, bench everything." - sbt plugin for JMH (Java Microbenchmark Harness)
sbt-scoverage7.4 7.5 sbt-revolver VS sbt-scoveragesbt plugin for scoverage
sbt-release7.4 8.4 sbt-revolver VS sbt-releaseA release plugin for sbt
sbt-docker7.3 0.0 sbt-revolver VS sbt-dockerCreate Docker images directly from sbt
sbt-updates7.1 8.1 sbt-revolver VS sbt-updatessbt plugin that can check Maven and Ivy repositories for dependency updates
better-monadic-forDesugaring scala `for` without implicit `withFilter`s
tut6.9 1.1 sbt-revolver VS tutdoc/tutorial generator for scala
sbt-buildinfo6.8 0.0 sbt-revolver VS sbt-buildinfoI know this because build.sbt knows this.
xsbt-web-plugin6.3 5.0 sbt-revolver VS xsbt-web-pluginServlet support for sbt
sbt-pack6.3 9.1 sbt-revolver VS sbt-packA sbt plugin for creating distributable Scala packages.
sbt-microsites6.2 5.3 sbt-revolver VS sbt-micrositesAn sbt plugin to create awesome microsites for your project
sbt-mima-plugin6.2 6.9 sbt-revolver VS sbt-mima-pluginA tool for catching binary incompatibility in Scala
sbt-ensime6.1 0.0 sbt-revolver VS sbt-ensimeGenerates .ensime config files for SBT projects http://ensime.org/build_tools/sbt
mdoc6.0 9.3 sbt-revolver VS mdocTypechecked markdown documentation for Scala
splain5.7 5.3 sbt-revolver VS splainbetter implicit errors for scala
sbt-sonatype5.7 8.9 sbt-revolver VS sbt-sonatypeA sbt plugin for publishing Scala/Java projects to the Maven central.
scala-clippy5.5 0.0 sbt-revolver VS scala-clippyGood advice for Scala compiler errors
sbt-ci-release5.4 0.0 sbt-revolver VS sbt-ci-releasesbt plugin to automate Sonatype releases from GitHub Actions
sbt-site5.3 8.0 sbt-revolver VS sbt-siteSite generation for sbt
sbt-dependency-checkSBT Plugin for OWASP DependencyCheck. Monitor your dependencies and report if there are any publicly known vulnerabilities (e.g. CVEs). :rainbow:
sbt-header5.0 6.7 sbt-revolver VS sbt-headersbt-header is an sbt plugin for creating file headers, e.g. copyright headers
sbt-doctest4.6 9.0 sbt-revolver VS sbt-doctestDoctest for scala
sbt-play-scalajs4.5 1.0 sbt-revolver VS sbt-play-scalajsSBT plugin to use Scala.js along with any sbt-web server.
sbt-pgp4.5 0.0 sbt-revolver VS sbt-pgpPGP plugin for sbt
sbt-scalafmt4.3 4.3 sbt-revolver VS sbt-scalafmtsbt plugin for Scalafmt
sbt-api-mappings4.1 3.3 sbt-revolver VS sbt-api-mappingsAn Sbt plugin that fills apiMappings for common Scala libraries.
sbt-unidoc4.1 5.7 sbt-revolver VS sbt-unidocsbt plugin to create a unified Scaladoc or Javadoc API document across multiple subprojects.
sbt-sublime3.9 0.0 sbt-revolver VS sbt-sublimeAn sbt plugin for generating Sublime Text projects with library dependencies sources
sbt-robovm3.8 0.0 sbt-revolver VS sbt-robovmAn sbt plugin for iOS development in Scala
sbt-groll3.6 0.0 sbt-revolver VS sbt-grollsbt plugin to roll the Git history
sbt pom reader pluginTranslates xml -> awesome. Maven-ish support for sbt.
sbt-ghpages3.4 4.0 sbt-revolver VS sbt-ghpagesgit, site and ghpages support for sbt projects.
ScalaKata23.3 0.0 sbt-revolver VS ScalaKata2Interactive Playground
sbt-ide-settings3.0 0.0 sbt-revolver VS sbt-ide-settingsSBT plugin for tweaking various IDE settings
sbt-example2.7 9.2 sbt-revolver VS sbt-exampleRun Scaladoc as unit tests
sbt-scala-js-map2.4 6.2 sbt-revolver VS sbt-scala-js-mapA Sbt plugin that configures source mapping for Scala.js projects hosted on Github
sbt-haxe1.9 0.0 sbt-revolver VS sbt-haxeA Sbt plugin to compile Haxe sources.
sbt-versions1.4 0.0 sbt-revolver VS sbt-versionsPlugin that checks for updated versions of your project's dependencies.
sbt-hepek1.3 0.0 sbt-revolver VS sbt-hepekSbt plugin for rendering Scala objects to files. And more!
sbt-cppp1.2 0.0 sbt-revolver VS sbt-cpppCross-Project Protobuf Plugin for Sbt
sbt-pantarhei1.2 0.0 sbt-revolver VS sbt-pantarheisbt plugin building and publishing release notes from github pull requests
sbt-view1.0 0.0 sbt-revolver VS sbt-viewSBT Plugin for Viewing ScalaDoc and JavaDoc
pttrt0.8 0.0 sbt-revolver VS pttrtPass Them To Run-Time
sbt-classfinder0.7 0.0 sbt-revolver VS sbt-classfinderSBT plugin for retrieving runtime information about the classes and traits in a project
Clean code begins in your IDE with SonarLint
Do you think we are missing an alternative of sbt-revolver or a related project?
sbt-revolver is a plugin for SBT enabling a super-fast development turnaround for your Scala applications.
It sports the following features:
- Starting and stopping your application in the background of your interactive SBT shell (in a forked JVM)
- Triggered restart: automatically restart your application as soon as some of its sources have been changed
Even though sbt-revolver works great with spray on spray-can there is nothing spray-specific to it. It can
be used with any Scala application as long as there is some object with a
sbt-revolver requires SBT 0.13.x or greater. Add the following dependency to your
addSbtPlugin("io.spray" % "sbt-revolver" % "0.9.1")
sbt-revolver is an auto plugin, so you don't need any additional configuration in your build.sbt nor in Build.scala
to make it work. In multi-module builds it will be enabled for each module. To disable sbt-revolver for some submodules use
Project(...).disablePlugins(RevolverPlugin) in your build file.
For older versions of sbt see version 0.7.2.
sbt-revolver defines three new commands (SBT tasks) in its own
reStart <args> --- <jvmArgs>starts your application in a forked JVM. The optionally specified (JVM) arguments are appended to the ones configured via the
reStart::javaOptionssetting (see the "Configuration" section below). If the application is already running it is first stopped before being restarted.
reStopstops application. This is done by simply force-killing the forked JVM. Note, that this means that shutdown hooks are not run (see #20).
reStatusshows an informational message about the current running state of the application.
You can use
~reStart to go into "triggered restart" mode. Your application starts up and SBT watches for changes in
your source (or resource) files. If a change is detected SBT recompiles the required classes and sbt-revolver
automatically restarts your application.
When you press <ENTER> SBT leaves "triggered restart" and returns to the normal prompt keeping your application running.
To customize which files should be watched for triggered restart see the sbt documentation about Triggered Execution.
The following SBT settings defined by sbt-revolver are of potential interest:
SettingKey[Seq[String]], which lets you define arguments that sbt-revolver should pass to your application on every start. Any arguments given to the
reStarttask directly will be appended to this setting.
reStart::mainClass, which lets you optionally define a main class to run in
reStartindependently of the one set for running the project normally. This value defaults to the value of
compile:run::mainClass. If you don't specify a value here explicitly the same logic as for the normal run main class applies: If only one main class is found it one is chosen. Otherwise, the main-class chooser is shown to the user.
SettingKey[Seq[String]], which lets you define the options to pass to the forked JVM when starting your application
SettingKey[File], which lets you customize the base directory independently from what
reStart::fullClasspath, which lets you customize the full classpath path for running with
reStart::envVars, which lets you customize the environment variables for running the application.
SettingKey[String], which lets you override the value of the
SettingKey[Seq[String]], which lets you change colors used to tag output from running processes. There are some pre-defined color schemes, see the example section below.
SettingKey[String], which lets you change the log tag shown in front of log messages. Default is the project name.
SettingKey[Option[DebugSettings]]to specify remote debugger settings. There's a convenience helper
Revolver.enableDebuggingto simplify to enable debugging (see examples).
To configure a 2 GB memory limit for your app when started with
javaOptions in reStart += "-Xmx2g"
To set a special main class for your app when started with
mainClass in reStart := Some("com.example.Main")
To set fixed start arguments (than you can still append to with the
reStartArgs := Seq("-x")
To enable debugging with the specified options:
Revolver.enableDebugging(port = 5050, suspend = true)
To change set of colors used to tag output from multiple processes:
reColors := Seq("blue", "green", "magenta")
There are predefined color schemes to use with
To add environment variables when running the application:
envVars in reStart := Map("USER_TOKEN" -> "2359298356239")
Note: JRebel support in sbt-revolver is not actively supported any more.
If you have JRebel installed you can let sbt-revolver know where to find the
jrebel.jar. You can do this
either via the
Revolver.jRebelJar setting directly in your SBT config or via a shell environment variable with the
JREBEL_PATH (which is the recommended way, since it doesn't pollute your SBT config with system-specific settings).
For example, on OSX you would add the following line to your shell startup script:
With JRebel sbt-revolver supports hot reloading:
- Start your application with
- Enter "triggered compilation" with
~products. SBT watches for changes in your source (and resource) files. If a change is detected SBT recompiles the required classes and JRebel loads these classes right into your running application. Since your application is not restarted the time required to bring changes online is minimal (see the "Understanding JRebel" section below for more details). When you press <ENTER> SBT leaves triggered compilation and returns to the normal prompt keeping your application running.
- If you changed your application in a way that requires a full restart (see below) press <ENTER> to leave
triggered compilation and
- Of course you always stop the application with
sbt-revolver is licensed under APL 2.0.
Feedback and contributions to the project, no matter what kind, are always very welcome. However, patches can only be accepted from their original author. Along with any patches, please state that the patch is your original work and that you license the work to the sbt-revolver project under the project’s open source license.
*Note that all licence references and agreements mentioned in the sbt-revolver README section above are relevant to that project's source code only.