我在同一时间使用Maven和SBT管理我的项目。造成这种情况的原因是:
Maven SBT依赖项构件?
- 的IntelliJ的IDEA无法导入SBT 项目(IDEA-SBT插件不 工作非常好)
- 我不知道怎样才能来源和 的javadoc。 SBT。(我想看看关于这个的任何答案)
问题是我不知道如何让Maven下载SBT依赖。我搜索maven仓库并找不到关于sbt的任何内容。我想用Maven或SBT来管理我项目中的所有罐子。
我在同一时间使用Maven和SBT管理我的项目。造成这种情况的原因是:
Maven SBT依赖项构件?
问题是我不知道如何让Maven下载SBT依赖。我搜索maven仓库并找不到关于sbt的任何内容。我想用Maven或SBT来管理我项目中的所有罐子。
如果您将pom.xml放到项目的根目录中,它将被SBT识别。当您在项目定义中没有指定托管依赖项时,SBT依赖于Maven依赖项。
正如在SBT doumentation说,
SBT执行这种依赖性在执行更新操作时处理 。默认情况下,sbt在每次编译之前都不会更新您的 依赖项,但只有在您执行 更新时才会更新。 SBT支持的 指定这些依赖三个方面:
* Declarations in your project definition * Maven POM files * Ivy configuration and settings files
idea-sbt插件对IDEA 10非常有用 - 它真正打算做的是在IDE中打开一个SBT外壳,并且它足够好。
如果您有兴趣将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()方法。希望有所帮助。
非常感谢withSources()提示。 – Sawyer 2011-03-14 07:04:52
是的,但是当导入到IDEA时,它声称找不到SBT.jar,因为它确实存在于maven中,我问的是如何将sbt依赖添加到pom.xml中。 – Sawyer 2011-03-13 07:48:49
为什么你需要你的项目依赖于sbt.jar(构建时间,元级别依赖)?只有在项目定义时才需要(在大多数情况下),这对于SBT是有用的(并且在标准设置中,可见)。 – 2011-03-13 07:57:11
由于您使用scala源定义sbt项目定义,IDE将尝试解析并编译该文件。如果您的类路径中没有有效的sbt库,它将报告编译错误,我不想指向硬盘驱动器中的那个jar。 – Sawyer 2011-03-13 08:08:45