【发布时间】:2018-06-18 00:23:17
【问题描述】:
我有一个 Maven POM 文件,部署工程师需要在企业中部署系统。我有开发人员将 SBT 用于 Scala 项目。他们使用 Maven 不支持的 SBT 目标。我们想使用 Maven POM 文件来定义依赖关系,在 SBT 中添加这些依赖关系,并在那里定义 SBT 开发目标。
根据 SBT 文档,externalPom() 命令是执行此操作的方法。但即使使用最简单的 POM 文件(两个开发人员已经尝试过使用定义不同依赖项的两个不同的简单 POM 文件),externalPom() 命令似乎也只工作了一半。 SBT 目标清楚地识别 POM 中定义的依赖关系,但无法解决它。出现此错误:
无法添加依赖 'commons-collections#commons-collections;3.2.2' 配置模块的“默认” default#maven-sbt$sources_javadoc;0.1-SNAPSHOT 因为这个 配置不存在!
当 externalPom() 命令被注释掉并直接在 build.sbt 文件中添加等效依赖项时,一切都会顺利进行。在这两种情况下,依赖项都直接来自 Maven Central;一种是从 Maven 选项卡复制依赖项,另一种是从 SBT 选项卡复制依赖项。再一次,两个开发人员看到了完全相同的东西,来自两个不同的依赖项。共同点是两个开发人员都将 build.sbt 文件缩减为单个语句。在“slurp from POM”的情况下,该语句是externalPom()。在“plain old SBT”的情况下,该语句是从 Maven Central 复制的依赖项。 POM 文件是一个具有单个依赖项的依赖项列表(尽可能简单,并且仍然可以测试 externalPom())。
我们怀疑我们需要在 build.sbt 中添加其他内容来使 externalPom() 命令正常工作,但我们不知道它是什么。任何帮助将不胜感激。
【问题讨论】: