As you know, SBT is compatible with Maven in some way -- SBT recognizes simple Maven POMs and can use dependencies and repositories specified in them. However, SBT wiki says that, if inline dependency is specified in SBT project definition, POM will be ignored (so using both in this case is impossible):
Maven and Ivy configurations (pom.xml and ivy.xml) are ignored when inline dependency declarations are present.
Does anyone know, if any kind of converter from Maven POM to SBT project definition exists (translating POM's XML into project definition Scala code)? I'm considering writing such script (that will help to migrate my old Scala/Maven projects to SBT), but want to know first, if this functionality already exists.
Source: Tips4all
Converter is far too strong a term for this hack, but I wrote a script to take a block of and output SBT style deps: http://gist.github.com/388334
ReplyDeleteI didn't manage to find an undocumented capability in SBT that allows to make such conversions (POM -> project definition), and have came up with writing a very simple script that creates SBT build file with repos/dependencies from POM.
ReplyDeleteIn case you just need to convert Maven/XML dependencies into SBT/Scala, you can use this script provided by @retronym
Take a look a CodaHale's Maven-SBT project over at Git-Hub. Basically, CodaHale has swapped out IVY from SBT and replaced it with Maven, so POM related tasks should be be more compatible/flexible.
ReplyDeleteCheers
Rich
Not a converter, but a step-by-step guide for moving a multimodule project from Maven to SBT can be found here.
ReplyDeleteQuite nice for understanding what actually happens and ensuring you have a fair amount of control over the proces..