Maven SBT依赖项工件?

时间:2011-03-13 06:46:26

标签: scala maven intellij-idea sbt

我同时使用Maven和SBT管理我的项目。原因如下:

  1. Intellij IDEA无法导入SBT 项目。(idea-sbt插件没有 工作得很好)
  2. 我不知道怎样才能得到消息来源 来自SBT的javadocs。(我希望看到有关此问题的任何答案)
  3. 问题是我不知道如何让Maven下载SBT依赖。我通过maven存储库搜索,找不到任何关于sbt的信息。我想使用Maven或SBT管理我项目中的所有罐子。

2 个答案:

答案 0 :(得分:5)

  • 如果您将pom.xml放到项目的根目录中,它将被SBT识别。当您在项目定义中未指定托管依赖项时,SBT依赖于Maven依赖项。

    SBT doumentation中所说,

  

sbt执行此依赖项处理   何时执行更新操作。通过   默认情况下,sbt不会更新你的   每次编译之前的依赖关系,   但只有在执行时才这样做   更新。 sbt支持三种方式   指定这些依赖项:

* Declarations in your project definition
* Maven POM files
* Ivy configuration and settings files
  • Maven目前对SBT一无所知(至少,到目前为止我还没有听说过任何插件),因此,在Maven和SBT中管理项目的最佳方法是通过SBT生成POM 。有关详细信息,请参阅SBT to Maven Converter

答案 1 :(得分:5)

idea-sbt插件对我来说非常适合使用IDEA 10 - 所有它真正打算在IDE中打开一个SBT shell并且它做得很好。

如果你有兴趣从你的构建中获取Maven,那么你应该研究一个插件是sbt-idea插件(https://github.com/mpeltonen/sbt-idea)。这是一个很棒的插件,可以从SBT项目生成IDEA文件。它使用起来并不容易。在SBT提示符下,运行以下命令:

*sbtIdeaRepo at http://mpeltonen.github.com/maven/
*idea is com.github.mpeltonen sbt-idea-processor 0.3.0
update
idea

注意星号 - 它们应该包括在内。

此时,您可以在IDEA中打开您的项目。它不会抱怨SBT依赖。每次向项目文件中添加新的依赖项时,只需再次运行'idea'命令即可告诉IDEA。我在idea-sbt提供的SBT窗口中这样做。

至于获取具有依赖关系的源和文档,您可以执行类似的操作(来自SBT docs):

val sc = "org.scalacheck" % "scalacheck" % "1.5" withSources()

有一个相应的withJavadoc()方法。希望有所帮助。