using maven to generate your project's scala classpath

one thing i quite like about scala is that ability to run it in “interpreted” mode via the scala command. that allows me — similiar to python or ipython — to experiment and quickly try things out or even test my classes and objects.

what was a bit of a pain was getting the proper classpath constructed so that not only target/classes was picked up but also all the required dependencies. poking a bit around in maven’s plugin documentation i came across the dependency plugin and in particular the dependency:build-classpath mojo, armed with that information i came up with the following rather useful shell script:

[bash] #!/bin/bash top=$(pwd) cwd=$(pwd) while [ "$top" != "/" -a ! -e "$top/pom.xml" ] ; do cd .. top=$(pwd) done cd $cwd if [ -e "$top/pom.xml" ] ; then cd $top echo "generating scala classpath based on maven pom.xml" mvn dependency:build-classpath -Dmdep.outputFile=.classpath-scala echo "starting scala" scala -cp target/classes:$(cat .classpath-scala) else echo "cannot find top level pom.xml! must have taken a wrong turn somewhere. sorry." exit 1 fi [/bash]

save under a convenient name, stir, and enjoy: call this script instead of calling scala directly.