scala – 这个sbt文件有什么问题?
当我将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感到很沮丧,我希望这有助于:) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- jenkins – Docker,如何处理ssh密钥,known_hos
- Angularjs – 通过单击button1(假上传按钮)触发按
- bootstrap-带下拉菜单的胶囊式标签页
- Axis2 WebService(基于REST风格)
- angularjs – 没有显示Angular Material Dialog弹
- scala – Pipeline中Spark Dataframe中的OneHotE
- scala – Haskell构建生态系统中类似SBT的功能
- unix – cron命令每12小时运行一次
- shell – 如何检查文件是否是二进制文件并读取所
- shell – fabric无法在Windows上执行远程命令