Fix referencing xsbti classes in project definitions and plugins

This commit is contained in:
Mark Harrah 2010-02-16 19:18:52 -05:00
parent 31bfe43786
commit ec1ed12a24
2 changed files with 7 additions and 17 deletions

17
notes
View File

@ -1,8 +1,10 @@
DONE
-fix caching issue for compiler interface
-fix test ClassLoader
-implement <file and <port
- fixed Jetty 7 and JRebel
- fixed make-pom and missing <repositories> tag
- fixed referencing xsbti classes from project definition and plugins
- added experimental 'sbt-update version [output.jar]' command enabled by mixing in UpdateSbt trait. It probably doesn't work on Windows, but confirmation either way would be helpful.
Changes 'sbt.version' after verifying the version is valid by downloading that version of sbt.
Updates the current launcher jar or the location specified in the second argument with either a downloaded sbt-launch-<version>.jar if available or a copy of the current launcher jar that uses <version> by default when starting new projects.
Goals/Guidelines for xsbt
=====
@ -10,9 +12,6 @@ As usual:
- Immutable interfaces
- Typesafe
- Robust, flexible API
ISSUES
- java sources are not recompiled when jars change: possibly binary dependencies are not recorded?
TODO
- launcher interface versioning
@ -20,12 +19,10 @@ TODO
- tests for API extractor
- have background triggered commands (~sync)
update 0_6_Summary to mention different output directories.
Task engine
- method tasks will be normal tasks that pull the command line from a CommandLine task
- per task configuration, including logging (e.g. 'task compile log debug')
- unnamed tasks log to parent task
- unnamed tasks log to parent task
- better control over parallel logging. Approach undecided. Some possibilities:
+ optionally one task always logging
+ log each task to a file

View File

@ -126,15 +126,12 @@ class XSbt(info: ProjectInfo) extends ParentProject(info)
class CompileProject(info: ProjectInfo) extends Base(info) with TestWithLog with TestWithLaunch
{
override def testCompileAction = super.testCompileAction dependsOn(compileInterfaceSub.`package`, interfaceSub.`package`)
// don't include launch interface in published dependencies because it will be provided by launcher
override def deliverProjectDependencies = Set(super.deliverProjectDependencies.toSeq : _*) - launchInterfaceSub.projectID
override def testClasspath = super.testClasspath +++ compileInterfaceSub.jarPath +++ interfaceSub.jarPath --- compilerInterfaceClasspath --- interfaceSub.mainCompilePath
override def compileOptions = super.compileOptions ++ Seq(CompileOption("-Xno-varargs-conversion")) //needed for invoking nsc.scala.tools.Main.process(Array[String])
}
class IvyProject(info: ProjectInfo) extends Base(info) with TestWithIO with TestWithLog with TestWithLaunch
{
val ivy = "org.apache.ivy" % "ivy" % "2.1.0"
override def deliverProjectDependencies = Set(super.deliverProjectDependencies.toSeq : _*) - launchInterfaceSub.projectID
}
abstract class BaseInterfaceProject(info: ProjectInfo) extends DefaultProject(info) with ManagedBase with TestWithLog with Component with JavaProject
class InterfaceProject(info: ProjectInfo) extends BaseInterfaceProject(info)
@ -214,10 +211,6 @@ class XSbt(info: ProjectInfo) extends ParentProject(info)
override def testCompileAction = super.testCompileAction dependsOn((testWithTestClasspath.map(_.testCompile) ++ testWithCompileClasspath.map(_.compile)) : _*)
override def testClasspath = (super.testClasspath /: (testWithTestClasspath.map(_.testClasspath) ++ testWithCompileClasspath.map(_.compileClasspath) ))(_ +++ _)
}
trait WithLauncherInterface extends BasicScalaProject
{
override def deliverProjectDependencies = super.deliverProjectDependencies.toList - launchInterfaceSub.projectID
}
}
trait JavaProject extends BasicScalaProject
{