加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 这个sbt文件有什么问题?

发布时间:2020-12-16 08:43:58 所属栏目:安全 来源:网络整理
导读:当我将SBT项目导入intelliJ时,build.sbt文件显示了很多错误,如下面的屏幕截图所示.想知道可能是什么问题 IDEA版本13.1.4 我也看到以下内容 The following source roots are outside of the corresponding base directories:C:Usersp0cDownloadsrecfunsr
当我将SBT项目导入intelliJ时,build.sbt文件显示了很多错误,如下面的屏幕截图所示.想知道可能是什么问题

IDEA版本13.1.4

我也看到以下内容

The following source roots are outside of the corresponding base directories:
C:Usersp0cDownloadsrecfunsrcmainresources
C:Usersp0cDownloadsrecfunsrctestjava
C:Usersp0cDownloadsrecfunsrctestscala
C:Usersp0cDownloadsrecfunsrctestresources
These source roots cannot be included in the IDEA project model. Please consider using shared SBT projects instead of shared source roots.

解决方法

我认为这个问题可能没有提供所有必要的信息来最终回答,但无论如何我都会给它一个旋转 –

由于sbt在从shell调用时运行正常,我们知道sbt文件没问题.我为我的Scala和sbt项目使用Idea,我确信Idea sbt支持非常有效,但是!在项目结构方面,理念比sbt更具限制性.创建一个Idea无法很好地支持的有效sbt项目结构非常容易.

鉴于源根错误表明recfun / src文件夹不在项目文件夹中,很明显在处理recfun / build.sbt期间不会发出此错误.屏幕截图显示您至少有三个不同的sbt文件,progfun-recfun,submission和scala-recfun.由于Idea还会创建像submission-build这样的项目,并且你在那里有一个任务构建项目,项目结构中可能会有一些东西被破坏,而不是从sbt的观点来看 – 你很好,你可以构建 – 但是来自Idea观点,这是更严格的.

我建议解决这个问题的方法是改变你的项目结构如下.首先,拥有一个带有build.sbt的顶级项目.然后为您想要的每个src文件夹创建一个子项目.不要在顶级项目中放置src文件夹.每个子项目也需要build.sbt.

其次,从shell运行时,确保子项目与sbt正确构建.使用以下语法排列具有适当依赖项的子项目build.sbt文件:

lazy val a = ProjectRef(file("../a"),"a")
lazy val b = ProjectRef(file("../b"),"b")
lazy val root = Project(id = "c",base = file(".")) dependsOn (a,b)

(这个例子有三个姐妹项目a,b和c,其中c依赖于a和b.这三个项目放在根目录中具有相同名称的目录中.代码片段来自c的构建文件.)

第三,安排顶级build.sbt聚合子项目,在顶级build.sbt中使用此语法:

lazy val a = ProjectRef(file("a"),"a")
lazy val b = ProjectRef(file("b"),"b")
lazy val c = ProjectRef(file("c"),"c")

lazy val root = (project in file(".")).
  aggregate(a,b,c)

构建这个顶级项目将构建每个子项目a,并且子项目构建文件中建立的依赖项将确保它们以正确的顺序构建.

第四,将顶级项目导入Idea,一切都应该很好.

如果需要,您可以使用文件结构,因为项目引用使用相对路径,但通常至少从简单开始就很好.

我在开始时对sbt和Idea感到很沮丧,我希望这有助于:)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读