当前位置: 首页 > 知识库问答 >
问题:

sbt子项目的项目目录

蓬兴国
2023-03-14

sbt子项目是否可以有自己的project目录?或者只有根项目可以用。Scala帮助器文件为构建项目的目录?。下面是我目前的建筑结构。/my-project/sub-projects/sub-project-1/build.sbt无法访问/my-project/sub-project/sub-project/sub-project-1/subproject-1/subproject-1/subproject-1/scala中定义的对象。

/my-project
  build.sbt
  /projects
    Helper.scala
  sub-projects
    sub-project-1
      build.sbt
      /projects
        SubProjectHelper.scala

更新:sub-project-1/build.sbt中的以下sbt定义

lazy val localhost = (project in file(".")).settings (
    name := """localhost""",
    version := Common.version,
    scalaVersion := Common.scalaVersion,
    libraryDependencies ++= Common.dependencies,
    libraryDependencies ++= Localhost.dependencies
)

由于以下错误而失败

    libraryDependencies ++= Localhost.dependencies
                            ^
sbt.compiler.EvalException: Type error in expression
    at sbt.compiler.Eval.checkError(Eval.scala:384)
    at sbt.compiler.Eval.compileAndLoad(Eval.scala:183)
    at sbt.compiler.Eval.evalCommon(Eval.scala:152)
    at sbt.compiler.Eval.evalDefinitions(Eval.scala:122)
    at sbt.EvaluateConfigurations$.evaluateDefinitions(EvaluateConfigurations.scala:271)
    at sbt.EvaluateConfigurations$.evaluateSbtFile(EvaluateConfigurations.scala:109)
    at sbt.Load$.sbt$Load$$loadSettingsFile$1(Load.scala:712)

Common在/my-project/projects/Common.scala中定义,没有问题。但是Localhost是在/my-project/sub-projects/sub-project-1/projects/sub-project-1/projects/subprojectHelper中定义的。scala在sub-project-1构建中没有正确地解析。sbt

共有1个答案

向修谨
2023-03-14

是的,它们可以,而且您甚至不需要有子项目目录,只需将sub-project-1放在my-project目录中即可。

 类似资料:
  • 我正在使用sbt 0.13.12,这是我的项目 在构建中。sbt取决于公共。如果我按sbt project sub1 run运行就可以了。但是,当我将子项目打包为jar文件时,我运行sub1。jar文件中,错误显示sub1无法找到一类公共的。 我的目的是包装sub1。jar和sub2。在每个jar文件中编译带有通用代码的jar。 --更新-- 我尝试作为建议回答。运行时遇到这个问题: 而且,是的!

  • 但是,在编译ApplicationA时,SBT抱怨依赖项只能是子目录!!: 这看起来很简单,拥有这个项目依赖项的正确方法是什么?

  • 我有一个Gradle多项目构建,看起来像这样: 我希望将目录< code>shared中的所有项目作为依赖项添加到< code>plugins中的所有项目。 更一般地说:我如何按目录配置子项目? settings.gradle的内容: build.gradle的内容:

  • 免责声明:我是sbt和Scala的新手,所以我可能会错过一些明显的东西。 我的目标是将Scala编译器用作我主要项目中的库。我最初是通过手动将scala JAR放在项目的libs目录中,然后将该目录包含在我的类路径中来实现的。注意,当时我没有使用sbt。现在,我想使用sbt并从github下载scala源代码,构建scala JAR,然后构建我的项目。我首先创建两个目录:

  • 我有一个多模块java项目,我想在其中创建jar(bin、source、javadoc),但我很难从子项目配置中的子项目中获取变量。 这是我在根项目中的build.gradle文件: 这就是建筑。gradle文件子项目之一: 当我想运行构建脚本时,我得到了以下异常: 无法获取类型为org的对象的未知属性“mainClassName”。格雷德尔。应用程序编程接口。JAVA档案内部的默认舱单。 在子流