Generates a shell script which lets you easily run your main class without SBT (much faster than sbt run
!).
The plugin is hosted in sbt-plugin-releases repository so you can simply add the following line to your global ~/.sbt/0.13/plugins/plugins.sbt
to make it available in all of your projects:
addSbtPlugin("pl.tues" % "sbt-runfast" % "0.1")
Alternatively, you can enable it per-project by adding the above line to <your-project>/project/plugins.sbt
.
Next, run:
sbt runfastGenerate
inside your project. It will generate a script called runfast.sh
in the target/
directory. Running your program now is straightforward:
target/runfast.sh
The script uses absolute paths, so you can run it from anywhere:
/path/to/your/project/target/runfast.sh
You can even copy it somewhere else and run from there.
The script passes all arguments to your program. This was actually the reason I wrote the plugin, as I wanted to use Bash's temporary files as arguments to my program:
target/runfast.sh foo <(grep bar baz | head)
Speed is a nice side-effect.
This plugin requires sbt 0.13.5+
, /bin/bash
and chmod
. I might add support for other platforms in the future, but I don't need it myself, so contributions are welcome.
The plugin simply generates a file target/runfast.sh
containing something like:
#!/bin/bash
java -cp '<fullClasspath>' '<mainClass>'
Really simple, but saves a lot of time!
Got an idea how to improve the code, tests or docs? All contributions are welcome!
It's really simple, just run:
sbt publishLocal
and the plugin will be published to your local repository (e.g. ~/.ivy2/local/
). You can then change the version in your plugins.sbt
:
addSbtPlugin("pl.tues" % "sbt-runfast" % "0.2-SNAPSHOT")
Run sbt scripted
for sbt script tests.
Feel free to ask in sbt-runfast Gitter room!