你如何开发SBT项目呢?

mco*_*ner 3 sbt scala-ide sbt-aspectj

背景:我有一个Play 2.0项目,我正在尝试在我的一些类(Java)中使用jar中的方面添加一些东西来进行aspectj编织.(sbt-aspectj似乎没有这样做,或者我看不出怎么样).所以我需要添加一个自定义任务,并依赖于编译.我有点想出了依赖部分.但是,因为我不确切知道我在做什么,但是,我想使用IDE开发它(我使用的是Scala-IDE).由于sbt项目(以及Play项目)是递归定义的,我假设我可以:

  1. 将eclipse插件添加到myplay/project/project/plugins.sbt
  2. 将sbt main jar(和aspectj jar)添加到myplay/project/project/build.sbt:

    libraryDependencies ++ = Seq("org.scala-sbt"%"main"%"0.12.2","aspectj"%"aspectj-tools"%"1.0.6")

  3. 放入myplay /项目

  4. 运行sbt,运行eclipse任务,然后将项目作为单独的项目导入eclipse.

我可以做到这一点,虽然build.scala(和其他scala文件)最初不被认为是源代码,我必须稍微改进构建路径.但是,即使我已经为项目定义了sbt main,eclipse IDE和编译任务都会产生错误:

> compile
[error] .../myplay/project/Build.scala:2: not found: object keys
[error] import keys.Keys._
[error]        ^
[error] .../myplay/project/SbtAspectJ.scala:2: object Configurations is not a member of package sbt
[error] import sbt.Configurations.Compile
[error]            ^
[error] .../myplay/project/SbtAspectJ.scala:3: object Keys is not a member of package sbt
[error] import sbt.Keys._
[error]            ^
[error] three errors found
Run Code Online (Sandbox Code Playgroud)

eclipse项目在其引用库中既没有显示主要工具也没有方面工具.但是,如果我给它一个虚假的版本(例如0.12.4),重新加载失败,所以它似乎使用依赖.

所以,......首先:这是正确的方法吗?第二:如果是这样,为什么不添加库.(第三:请不要让我感到愚蠢,我错过了.)

tma*_*hal 7

如果您收到object Keys is not a member of package sbt错误,那么您应该检查您是否从基本目录运行sbt,而不是/ project目录.