Hi Vassil,

Thanks for useful comments and link about integration SBT with Hudson!

2010/12/22 Vassil Dichev <[email protected]>

> 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

Reply via email to