Hi Richard, If it would be possible to use SBT with Apache Hudson and would be no other problems I think it's possible to use it as a replacement for Maven. But I think that we should expect some problems even for local builds.
2010/12/23 Richard Hirsch <[email protected]> > I have no problem using sbt. > > I think the main question is whether Apache Hudson would be able to > support the set-up described in the blog that Vassil mentioned. > > The only reason we would have to maintain maven is if sbt doesn't work > on the Apache Hudson. > > D. > > On Wed, Dec 22, 2010 at 9:26 PM, Vassil Dichev <[email protected]> wrote: > > Hey Vladimir, > > > > I have thought about this, but since we've started with maven, there > > was usually more benefit investing in other features than in a build > > tool transition. For a while continuous compilation worked even with > > the maven plugin > > (http://scala-tools.org/mvnsites/maven-scala-plugin/usage_cc.html), > > although lately it never seemed to work for some reason. > > > > SBT does have some advantages, and Lift is also trying to migrate. I > > also can't help but like the fact that SBT, just like ESME, has > > Actions ;-) > > http://code.google.com/p/simple-build-tool/wiki/CustomActions > > > > Hudson integration is a good point you've mentioned, and this is what > > I was able to find: > > http://henkelmann.eu/2010/11/14/sbt_hudson_with_test_integration > > > > One question: does it make sense to maintain Maven if/when we move to > > SBT? I guess not. > > > > It's nice that you're giving some thought to this, and even better > > that you've prepared a build file already! It might definitely be > > beneficial to test out this setup, and I don't consider your mail a > > spam :) > > > > Vassil > > > > > > On Wed, Dec 22, 2010 at 9:50 PM, Vladimir Ivanov <[email protected]> > wrote: > >> Hi all, > >> > >> Have you, guys, considered building ESME with Simple Build Tool: > >> http://code.google.com/p/simple-build-tool/ , at least locally? > >> > >> SBT has several pros and cons. > >> > >> Pros: > >> > >> - Native Scala support -> no Scala plugin > >> - There is no need to recompile all project files, only changed ones -> > more > >> faster build&run > >> - Buildfile is written in Scala instead of verbose XML -> buildfile is > >> shorter > >> > >> Cons: > >> > >> - SBT is based on Apache Ivy (while it includes Maven repo by default > and > >> can access local Maven repo) > >> - I have no idea whether integration of SBT with VCS and CI tools is > >> possible > >> > >> Probably many more cons exist > >> > >> I managed to build, run tests and run ESME app on jetty with SBT (of > course > >> I was able to perform only minimal testing). As an example, here is my > SBT > >> project file below: > >> > >> import sbt._ > >> > >> class EsmeProject(info: ProjectInfo) extends DefaultWebProject(info) { > >> val liftVersion = "2.2-RC4" > >> val compassVersion = "2.1.1" > >> val luceneVersion = "2.4.0" > >> > >> val mavenLocal = "Local Maven Repository" at > >> "file://"+Path.userHome+"/.m2/repository" > >> > >> val scalatoolsSnapshot = ScalaToolsSnapshots > >> val compassRepo = "Compass Repository" at " > http://repo.compass-project.org > >> " > >> val twitterRepo = "Twitter Repository" at "http://maven.twttr.com" > >> > >> def extraResources = "LICENSE" +++ "NOTICE" > >> override def mainResources = super.mainResources +++ extraResources > >> > >> override def ivyXML = > >> <dependencies> > >> <dependency org="net.lag" name="configgy" rev="2.0.1"> > >> <exclude org="org.scala-tools" module="vscaladoc"/> > >> </dependency> > >> <dependency org="com.twitter" name="ostrich" rev="2.3.2"> > >> <exclude org="org.scala-tools" module="vscaladoc"/> > >> </dependency> > >> </dependencies> > >> > >> override def libraryDependencies = Set( > >> "net.liftweb" %% "lift-util" % liftVersion % "compile->default", > >> "net.liftweb" %% "lift-webkit" % liftVersion % "compile->default", > >> "net.liftweb" %% "lift-widgets" % liftVersion % "compile->default", > >> "net.liftweb" %% "lift-mapper" % liftVersion % "compile->default", > >> "net.liftweb" %% "lift-testkit" % liftVersion % "compile->default", > >> "net.liftweb" %% "lift-openid" % liftVersion % "compile->default", > >> "net.liftweb" %% "lift-actor" % liftVersion % "compile->default", > >> "net.liftweb" %% "lift-json" % liftVersion % "compile->default", > >> "net.liftweb" %% "lift-common" % liftVersion % "compile->default", > >> "org.compass-project" % "compass" % compassVersion % > "compile->default", > >> "org.apache.lucene" % "lucene-core" % luceneVersion % > >> "compile->default", > >> "org.apache.lucene" % "lucene-snowball" % luceneVersion % > >> "compile->default", > >> "commons-httpclient" % "commons-httpclient" % "3.1" % > >> "compile->default", > >> "org.apache.derby" % "derby" % "10.5.3.0_1" % "compile->default", > >> "org.mortbay.jetty" % "jetty" % "[6.1.6,)" % "test->default", > >> "junit" % "junit" % "3.8.1" % "test->default", > >> "junit" % "junit" % "4.4" % "test->default", > >> "log4j" % "log4j" % "1.2.16" % "compile->default", > >> "org.slf4j" % "slf4j-api" % "1.6.1" % "compile->default", > >> "org.slf4j" % "slf4j-log4j12" % "1.6.1" % "compile->default", > >> "org.scala-tools.testing" %% "specs" % "1.6.6" % "test->default" > >> ) ++ super.libraryDependencies > >> } > >> > >> > >> Of course I didn't add many infrastructural tags comparing with Maven > pom. > >> > >> I thought that this might be interesting for someone or may be somebody > >> would wish to share any ideas, make any suggestions, comments etc. > Otherwise > >> please consider it as a spam. > >> > >> -- > >> Best Regards, > >> Vladimir Ivanov > >> > > > > > > > > -- > > Twitter: http://twitter.com/vdichev > > Blog: http://speaking-my-language.blogspot.com > > > -- Best Regards, Vladimir Ivanov
