如何在build.sbt中添加依赖项目以运行sbt编译

如何在build.sbt中添加依赖项目以运行sbt编译,sbt,Sbt,我是新的sbt建设。 我想将一个依赖项目的java文件(比如Proj a)添加到我的编译项目Proj B中。 在Proj B中运行sbt compile会抛出一个错误,即未找到依赖项目的java包/类。 我浏览了这个链接:但我不清楚如何添加这个依赖项才能使它工作 我尝试在build.sbt中添加一行,但没有成功。 lazy val projB=project.dependsOn/projA 更新 项目的build.sbt: 项目A的build.sbt: 当我在proj B上进行sbt编译时,如果

我是新的sbt建设。 我想将一个依赖项目的java文件(比如Proj a)添加到我的编译项目Proj B中。 在Proj B中运行sbt compile会抛出一个错误,即未找到依赖项目的java包/类。 我浏览了这个链接:但我不清楚如何添加这个依赖项才能使它工作

我尝试在build.sbt中添加一行,但没有成功。 lazy val projB=project.dependsOn/projA

更新

项目的build.sbt: 项目A的build.sbt: 当我在proj B上进行sbt编译时,如果找不到依赖类,它会抛出错误。Hbase类在项目A中

[error] import com.org.config.Hbase;
[error] **\hbase\HbaseDAO.java:38:1:
cannot find symbol
[error]   symbol:   class Hbase
[error]   location: class com.org.hbase.HbaseDAO
[error]         private Hbase hbase;
[error] (Compile / compileIncremental) javac returned non-zero exit code
[error] Total time: 6 s, completed 29/08/2019 9:58:39 AM
建议后更新了build.sbt:

sbt编译时在项目设置projA和projB中的以下库依赖项之后引发错误

libraryDependencies += "org.springframework.boot" % "spring-boot-starter- 
web" % "2.1.6.RELEASE"
在projA设置和

“;”应为,但在projB设置中为此行引发了字符串文字


我对这个错误没有多少线索。

看看你发布的两个代码片段,我猜你有两个独立的build.sbt文件,每个子项目一个。这使得他们独立,一个项目看不到另一个。虽然子项目可能有多个build.sbt文件,但建议在项目根目录中的单个build.sbt文件中定义整个多项目生成

例如,如果您的项目结构如下:

├── project
│  ├── build.properties
│  └── plugins.sbt
├── projA
│  └── src
├── projB
│  └── src
└── build.sbt
然后,您可以将所有生成设置和子项目关系放在根build.sbt中:

然后,如果从项目的根目录启动sbt shell,则可以调用compile或任何其他任务来编译projA和projB,也可以调用projA/compile专门编译该子项目


您已经在阅读文档,因此知道在哪里可以找到更多信息。请注意,您提供的链接指向旧文档,顶部有一条横幅指向新页面:

Hi Siva。你能展示一下build.sbt的相关部分吗?当您添加.dependsOn时,是否会出现错误?它应该是lazy val projB=project.dependsOnprojA没有斜杠,但我认为它只是一个输入错误,谢谢您的回复。更新了问题的更多细节。我也是sbt的新手,我现在的做法可能是完全错误的。谢谢@laugedelic。我仍然有一些问题。在此文本之后使用最新build.sbt内容更新了帖子:在建议之后更新了build.sbt。您需要在内部设置之间添加逗号。设置…谢谢@laughedelic。这有帮助。我的项目正在成功编译。非常感谢你的帮助。
inThisBuild(
 Seq(
   organization := "com.org",
   version := "1",
   resolvers ++= Seq(
   "Typesafe" at "http://repo.typesafe.com/typesafe/releases/",
   "Java.net Maven2 Repository" at "http://download.java.net/maven/2/",
  )
 )
)

lazy val root = project
  .in(file("."))
  .aggregate(projA,projB)

lazy val projA = project.settings(
    // project A settings and library dependencies

libraryDependencies += "org.springframework.boot" % "spring-boot-starter- 
parent" % "2.1.6.RELEASE" pomOnly()

libraryDependencies += "org.springframework.boot" % "spring-boot-starter- 
web" % "2.1.6.RELEASE"

libraryDependencies += "org.springframework.data" % "spring-data-hadoop- 
hbase" % "2.3.0.RELEASE"

libraryDependencies += "org.mortbay.jetty" % "jetty" % "7.0.0.pre5"

libraryDependencies += "io.netty" % "netty-all" % "5.0.0.Alpha2"

libraryDependencies += "commons-beanutils" % "commons-beanutils" % "1.9.4"

libraryDependencies += "commons-beanutils" % "commons-beanutils-core" % 
"1.8.3"

libraryDependencies += "xerces" % "xercesImpl" % "2.12.0"

libraryDependencies += "org.apache.hadoop" % "hadoop-yarn-server- 
nodemanager" % "3.2.0"

libraryDependencies += "org.apache.hadoop" % "hadoop-common" % "3.2.0"

libraryDependencies += "org.apache.hadoop" % "hadoop-common" % "2.7.0"

libraryDependencies += "org.apache.hadoop" % "hadoop-client" % "3.2.0"

libraryDependencies += "org.apache.hbase" % "hbase-client" % "2.1.1"

libraryDependencies += "org.apache.hbase" % "hbase" % "2.1.1" pomOnly()

libraryDependencies += "org.apache.hbase" % "hbase-common" % "2.1.1"
)

lazy val projB = project
 .dependsOn(projA)
  .settings(
   // project B settings and library dependencies
libraryDependencies += "org.springframework.boot" % "spring-boot-starter- 
parent" % "2.1.6.RELEASE" pomOnly()

libraryDependencies += "org.springframework.boot" % "spring-boot-starter- 
web" % "2.1.6.RELEASE"

libraryDependencies += "org.springframework.data" % "spring-data-hadoop- 
hbase" % "2.3.0.RELEASE"

libraryDependencies += "org.mortbay.jetty" % "jetty" % "7.0.0.pre5"

libraryDependencies += "io.netty" % "netty-all" % "5.0.0.Alpha2"

libraryDependencies += "commons-beanutils" % "commons-beanutils" % "1.9.4"

libraryDependencies += "commons-beanutils" % "commons-beanutils-core" % 
"1.8.3"

libraryDependencies += "xerces" % "xercesImpl" % "2.12.0"

libraryDependencies += "org.apache.hadoop" % "hadoop-yarn-server- 
nodemanager" % "3.2.0"

libraryDependencies += "com.fasterxml.jackson.core" % "jackson-databind" % 
"2.10.0.pr2"

libraryDependencies += "org.apache.hadoop" % "hadoop-common" % "3.2.0"

libraryDependencies += "org.apache.hadoop" % "hadoop-client" % "3.2.0"

libraryDependencies += "org.apache.hbase" % "hbase-client" % "2.1.1"

libraryDependencies += "org.apache.hbase" % "hbase" % "2.1.1" pomOnly()

libraryDependencies += "org.apache.hbase" % "hbase-common" % "2.1.1"

)
libraryDependencies += "org.springframework.boot" % "spring-boot-starter- 
web" % "2.1.6.RELEASE"
├── project
│  ├── build.properties
│  └── plugins.sbt
├── projA
│  └── src
├── projB
│  └── src
└── build.sbt
inThisBuild(
  Seq(
    organization := "com.org",
    version := "1",
    resolvers ++= Seq(
      "Typesafe" at "http://repo.typesafe.com/typesafe/releases/",
      "Java.net Maven2 Repository" at "http://download.java.net/maven/2/",
    )
  )
)

lazy val root = project
  .in(file("."))
  .aggregate(projA, projB)

lazy val projA = project
  .settings(
    // project A settings and library dependencies
  )

lazy val projB = project
  .dependsOn(projA)
  .settings(
    // project B settings and library dependencies
  )