There appears to be a few efforts to get Scala to work with Maven, so I thought it would be useful to collect all the ideas here and see what code is currently available. Once that is done I would be happy to review any of the plugins and maybe we can collect them into one project, give everyone access who participated and make one decent toolchain for Scala.
If folks put their names here and where there implementations are I'll review the code and make some suggestions for improvements and what might be merged. Probably wouldn't be too hard to make something decent quickly.
In listing the separate projects below can you put each under a major heading. I'd like to see how many different projects that distinct sets of people are working on i.e. are we looking 2, 5, or 7 different projects going on simultaneously. I don't want to miss anything when I start looking at all the code.
The issues I want to look at solving are:
- Combine the best parts of all the different Scala bits for Maven and help fix anything in Plexus or Maven itself that might be blocking good integration.
- A standard Scala packaging that will correspond to an optimized Scala lifecycle in Maven. This should allow a very terse definition of Scala project
- An optimized execution of the scala lifecycle in m2eclipse
Issues Seen by the Community
- Scala currently does not support backwards binary compatibility across release numbers. This has led to some issues with scala libraries either requiring users to always stay "current" or put tools on top of maven to release multiple "versions" each of which is compatible with a single Scala version. Currently the approach is to include the Scala version first in the project's version, e.g. "2.7.3-1.0-SNAPSHOT" would mean your lirbary is at version 1.0-SNAPSHOT using scala 2.7.3. It would be ideal if either scala become more backwards compatible or there were some way to manage this sanely inside maven.
- The maven-eclipse-plugin is unaware of either the pom configuration (source directories mostly) from the maven-scala-plugin, nor the eclipse metadata needed for the Scala Development Tools. It would be ideal if there was some integration point we could work towards to ensure compliance and reduce surprise for users.
Maven And Scala Community
Maven And Scala Community Related Projects
- Status - production
- Integrate the Scala compiler into the maven lifecycle
- Integrate the Scala console with maven's dependency resolution
- Integrate Scala documentation generation with the doxia
- scm: git://github.com/davidB/maven-scala-plugin.git (browse http://github.com/davidB/maven-scala-plugin/tree/master)
- David Bernard
- David Pollak
- Jesse Eichar
- Arnaud Bailly
- Josh Suereth
- Status - alpha
- Enable scala-defined Mojos to execute within a maven lifecycle
- scm: git://github.com/jsuereth/scala-mojo-support.git
Eclipse Maven Scala Integration (ESMi)
- Status - planning
- Integration with IAM and SDT
- Integration with M2E and SDT
- Project Page: http://code.google.com/p/esmi/
- Note: Currently Inactive. All active efforts are being directed at SDT patches and maven-scala-plugin patches