mirror of https://github.com/sbt/sbt.git
Generated this project from the simple template.
This commit is contained in:
parent
fe74dbec7f
commit
592b4aca30
|
|
@ -1,5 +1,7 @@
|
|||
/SbtTemplateProject.scala
|
||||
target
|
||||
/project/boot
|
||||
/project/plugins
|
||||
lib_managed
|
||||
src_managed
|
||||
/ext
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
#Project properties
|
||||
#Generated by sbt-setup
|
||||
#Generated by sbt-setup on Sat Apr 2 18:11:54 PDT 2011
|
||||
project.organization=improving
|
||||
project.name=sbt-template
|
||||
sbt.version=0.7.5.RC0
|
||||
project.version=0.1.1
|
||||
sbt.version=0.7.6.RC0
|
||||
project.version=0.0.1
|
||||
build.scala.versions=2.8.1
|
||||
project.initialize=false
|
||||
|
|
|
|||
|
|
@ -1,61 +0,0 @@
|
|||
import sbt._
|
||||
|
||||
case class ArtifactRevision(revision: String)
|
||||
case class ArtifactConfig(confs: String, fn: ModuleID => ModuleID)
|
||||
object ArtifactConfig {
|
||||
implicit def defaultArtifactConfig: ArtifactConfig = new ArtifactConfig("", identity[ModuleID])
|
||||
implicit def testArtifactConfig: ArtifactConfig = new ArtifactConfig("test", identity[ModuleID])
|
||||
}
|
||||
|
||||
trait LowPriorityLibraries {
|
||||
self: DefaultProject =>
|
||||
|
||||
// "latest.integration", "latest.milestone", "latest.release"
|
||||
def defaultRevision = "latest.integration"
|
||||
protected implicit def defaultArtifactRevision = new ArtifactRevision(defaultRevision)
|
||||
// protected implicit def defaultArtifactConfig = new ArtifactConfig("", identity[ModuleID])
|
||||
|
||||
protected implicit def autoConfig
|
||||
(artifact: GroupArtifactID)
|
||||
(implicit rev: ArtifactRevision, config: ArtifactConfig): ModuleID =
|
||||
{
|
||||
val ArtifactConfig(confs, fn) = config
|
||||
fn(
|
||||
if (confs == "") artifact % rev.revision
|
||||
else artifact % rev.revision % config.confs
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
trait TestLibraries extends LowPriorityLibraries {
|
||||
self: DefaultProject =>
|
||||
|
||||
private implicit val testDepConfig = ArtifactConfig("test", _.withSources)
|
||||
val specs: ModuleID = "org.scala-tools.testing" %% "specs"
|
||||
val scalacheck: ModuleID = "org.scala-tools.testing" %% "scalacheck"
|
||||
}
|
||||
|
||||
trait Libraries extends Repositories with TestLibraries {
|
||||
self: DefaultProject =>
|
||||
|
||||
import ArtifactConfig.defaultArtifactConfig
|
||||
|
||||
// val ant: ModuleID = "org.apache.ant" % "ant"
|
||||
// val asmAll: ModuleID = "asm" % "asm-all" withSources()
|
||||
// val easymock: ModuleID = "org.easymock" % "easymock"
|
||||
// val guava: ModuleID = "com.google.guava" % "guava"
|
||||
// val ivy: ModuleID = "org.apache.ivy" % "ivy"
|
||||
// val jdt: ModuleID = "org.eclipse.jdt" % "core" notTransitive()
|
||||
// val jetty: ModuleID = "org.mortbay.jetty" % "jetty"
|
||||
// val jmock: ModuleID = "org.jmock" % "jmock"
|
||||
// val jodaTime: ModuleID = "joda-time" % "joda-time"
|
||||
// val liftJson: ModuleID = "net.liftweb" %% "lift-json"
|
||||
// val maven: ModuleID = "org.apache.maven" % "maven-ant-tasks"
|
||||
// val scalaARM: ModuleID = "com.github.jsuereth.scala-arm" %% "scala-arm" withSources()
|
||||
val scalaImproving: ModuleID = "org.improving" %% "scala-improving"
|
||||
// val scalaSTM: ModuleID = "org.scala-tools" %% "scala-stm"
|
||||
// val scalariform: ModuleID = "org.scalariform" %% "scalariform"
|
||||
// val scalazCore: ModuleID = "org.scalaz" %% "scalaz-core" withSources()
|
||||
// val scalazHttp: ModuleID = "org.scalaz" %% "scalaz-http" withSources()
|
||||
// val slf4s: ModuleID = "com.weiglewilczek.slf4s" %% "slf4s" withSources()
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
import sbt._
|
||||
|
||||
trait Repositories {
|
||||
self: DefaultProject =>
|
||||
|
||||
val localMaven = "Local Maven" at "file://"+Path.userHome+"/.m2/repository"
|
||||
val localIvy = "Local Ivy" at "file://"+Path.userHome+"/.ivy2/local"
|
||||
val sonatype = "Sonatype" at "https://oss.sonatype.org/content/groups/public"
|
||||
val scalaToolsSnapshots = "Scala Tools Snapshots" at "http://scala-tools.org/repo-snapshots/"
|
||||
val jboss = "JBoss Repo" at "http://repository.jboss.org/maven2"
|
||||
}
|
||||
|
|
@ -1,11 +1,95 @@
|
|||
import sbt._
|
||||
|
||||
class SbttemplateProject(info: ProjectInfo) extends DefaultProject(info) with Libraries {
|
||||
// -Dscala.local=/path/to/scala/build
|
||||
override def localScala = System.getenv("scala.local") match {
|
||||
case null => super.localScala
|
||||
case path =>
|
||||
log.info("Found scala.local: " + path)
|
||||
List(defineScala("2.9.0-local", new java.io.File(path)))
|
||||
}
|
||||
class SbtTemplateProject(info: ProjectInfo) extends DefaultProject(info) with ProjectSupport {
|
||||
|
||||
}
|
||||
|
||||
|
||||
trait ProjectSupport extends ModuleIdDynamifactory {
|
||||
self: DefaultProject =>
|
||||
|
||||
/** Default "dynamic revision" to use with ivy.
|
||||
* See [[http://www.jaya.free.fr/ivy/doc/ivyfile/dependency.html]].
|
||||
* Likely alternatives: latest.milestone, latest.release
|
||||
*/
|
||||
def dynamicRevision = "latest.integration"
|
||||
|
||||
/** Repositories. Comment in or out to taste.
|
||||
*/
|
||||
val localMaven = "Local Maven" at "file://"+Path.userHome+"/.m2/repository"
|
||||
val localIvy = "Local Ivy" at "file://"+Path.userHome+"/.ivy2/local"
|
||||
val sonatype = "Sonatype" at "https://oss.sonatype.org/content/groups/public"
|
||||
val scalaToolsSnapshots = "Scala Tools Snapshots" at "http://scala-tools.org/repo-snapshots/"
|
||||
val jboss = "JBoss Repo" at "http://repository.jboss.org/maven2"
|
||||
|
||||
protected implicit lazy val implicitTransform: ArtifactTransform =
|
||||
ArtifactTransform(inScope("test"), withSources)
|
||||
|
||||
/*** Libraries ***/
|
||||
val specs: ModuleID = "org.scala-tools.testing" %% "specs"
|
||||
val scalacheck: ModuleID = "org.scala-tools.testing" %% "scalacheck"
|
||||
|
||||
// val ant: ModuleID = "org.apache.ant" % "ant"
|
||||
// val asmAll: ModuleID = "asm" % "asm-all" withSources()
|
||||
// val commonsVFS: ModuleID = "org.apache.commons" % "commons-vfs-project"
|
||||
// val easymock: ModuleID = "org.easymock" % "easymock"
|
||||
// val guava: ModuleID = "com.google.guava" % "guava"
|
||||
// val ivy: ModuleID = "org.apache.ivy" % "ivy"
|
||||
// val jdt: ModuleID = "org.eclipse.jdt" % "core" notTransitive()
|
||||
// val jetty: ModuleID = "org.mortbay.jetty" % "jetty"
|
||||
// val jmock: ModuleID = "org.jmock" % "jmock"
|
||||
// val jodaTime: ModuleID = "joda-time" % "joda-time"
|
||||
// val liftJson: ModuleID = "net.liftweb" %% "lift-json"
|
||||
// val maven: ModuleID = "org.apache.maven" % "maven-ant-tasks"
|
||||
// val scalaARM: ModuleID = "com.github.jsuereth.scala-arm" %% "scala-arm" withSources()
|
||||
// val scalaImproving: ModuleID = "org.improving" %% "scala-improving"
|
||||
// val scalaSTM: ModuleID = "org.scala-tools" %% "scala-stm"
|
||||
// val scalariform: ModuleID = "org.scalariform" %% "scalariform"
|
||||
// val scalazCore: ModuleID = "org.scalaz" %% "scalaz-core" withSources()
|
||||
// val scalazHttp: ModuleID = "org.scalaz" %% "scalaz-http" withSources()
|
||||
// val slf4s: ModuleID = "com.weiglewilczek.slf4s" %% "slf4s" withSources()
|
||||
}
|
||||
|
||||
trait ModuleIdDynamifactory extends Dynamifactory {
|
||||
self: DefaultProject =>
|
||||
|
||||
protected type DepId = GroupArtifactID
|
||||
protected type DepOut = ModuleID
|
||||
protected def finishDependency(in: GroupArtifactID, revision: String): ModuleID = in % revision
|
||||
|
||||
protected implicit lazy val implicitRevision: ArtifactRevision =
|
||||
ArtifactRevision(_ => dynamicRevision)
|
||||
|
||||
protected def inScope(scope: String): DepFn = _ % scope
|
||||
protected def withSources: DepFn = _.withSources()
|
||||
protected def intransitive: DepFn = _.intransitive()
|
||||
protected def withJavadoc: DepFn = _.withJavadoc
|
||||
|
||||
protected def withRevision(newRevision: String): DepFn = (m: ModuleID) => {
|
||||
ModuleID(m.organization, m.name, newRevision, m.configurations, m.isChanging, m.isTransitive, m.explicitArtifacts, m.extraAttributes)
|
||||
}
|
||||
}
|
||||
|
||||
trait Dynamifactory {
|
||||
protected type DepId
|
||||
protected type DepOut
|
||||
protected type DepFn = DepOut => DepOut
|
||||
protected def dynamicRevision: String
|
||||
protected def finishDependency(in: DepId, revision: String): DepOut
|
||||
|
||||
case class ArtifactRevision(revisionFn: DepId => String) {
|
||||
}
|
||||
case class ArtifactTransform(fns: DepFn*) {
|
||||
def apply(x: DepOut): DepOut = if (fns.isEmpty) x else fns.reduceLeft(_ andThen _)(x)
|
||||
}
|
||||
case class ArtifactConfig(rev: ArtifactRevision, transform: ArtifactTransform) { }
|
||||
|
||||
protected implicit def autoassembleConfig(implicit rev: ArtifactRevision, transform: ArtifactTransform): ArtifactConfig =
|
||||
ArtifactConfig(rev, transform)
|
||||
|
||||
protected implicit def autoconfigureDependencies(in: DepId)(implicit config: ArtifactConfig): DepOut = {
|
||||
val ArtifactConfig(ArtifactRevision(revisionFn), transform) = config
|
||||
|
||||
transform(finishDependency(in, revisionFn(in)))
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
import sbt._
|
||||
|
||||
class Plugins(info: ProjectInfo) extends PluginDefinition(info) {
|
||||
// def aquteRepo = "aQute Maven Repository" at "http://www.aqute.biz/repo"
|
||||
// lazy val aquteModuleConfig = ModuleConfiguration("biz.aQute", aquteRepo)
|
||||
// val bnd4sbt = "com.weiglewilczek.bnd4sbt" % "bnd4sbt" % "latest.release"
|
||||
}
|
||||
Loading…
Reference in New Issue