首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >取决于具有聚合项的项目

取决于具有聚合项的项目
EN

Stack Overflow用户
提问于 2016-02-22 11:15:30
回答 1查看 329关注 0票数 0

我把大型项目从maven转移到sbt,并遇到了一些问题。其中一个是下一个:

我有一个项目A依赖于项目B-1,B-2,B-3.(在pom.xml中,它看起来像很多依赖关系:

代码语言:javascript
复制
<dependencies>
        <dependency>
            B-1
        </dependency>

        <dependency>
            B-2
        </dependency>
        ...
</dependencies>

)我还有一个项目B,它有B-1,B-2,B-3.(在pom.xml中是看起来像

代码语言:javascript
复制
<modules>
  <module>B-1</module>
  <module>B-2</module>
  <module>B-3</module>
  ...
</modules>

所以在我的Build.scala里我有:

代码语言:javascript
复制
lazy val B = (Project("B", file("someFile"))
   aggregate(B-1, B-2, B3, ...))

我认为在Build.scala中,我可以这样声明项目A:

代码语言:javascript
复制
lazy val A = (Project("A", file("doesn't matter"))
   dependsOn(B))

但这不管用。我不明白为什么怎么修?因为写得像:

代码语言:javascript
复制
lazy val A = (Project("A", file("doesn't matter"))
   dependsOn(B-1, B-2, B3))

是多余的和丑陋的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-22 12:35:20

如果希望A依赖于B,而后者又依赖于B-1B-2 (也称为B-1B-2A将可用),则需要使用dependsOn

代码语言:javascript
复制
lazy val B1 = Project("B1", file("b1"))
lazy val B2 = Project("B2", file("b2"))
lazy val B = Project("B", file("b")).dependsOn(B1, B2)
lazy val A = Project("A", file("a")).dependsOn(B)

请注意,aggregatedependsOn不同:

来自sbt文档

聚合意味着在聚合项目上运行任务也将在聚合项目上运行它。

如果可能发生不需要A的情况,您还可以考虑将依赖关系从B-1等显式地显示出来。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35552204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档