如何依赖另一个项目的来源
How to depend on the sources of another project
我有两个使用 scalajs 的项目,其中第二个项目需要访问第一个项目的源代码。我定义我的第一个 project.sbt 如下:
val commonSettings = Seq(
name := "project1",
unmanagedSourceDirectories in Compile +=
baseDirectory.value / ".." / "shared" / "src" / "main" / "scala",
)
val project1JS = project.in(file("js"))
.settings(commonSettings: _*)
.enablePlugins(ScalaJSPlugin)
val project1JVM = project.in(file("jvm"))
.settings(commonSettings: _*)
为了让项目 2 能够访问项目 1 的源代码,我将其 sbt 定义如下:
val commonSettings = Seq(
name := "project2",
unmanagedSourceDirectories in Compile +=
baseDirectory.value / ".." / "shared" / "src" / "main" / "scala",
)
val project2JS = project.in(file("js"))
.settings(commonSettings: _*)
.configure(_.dependsOn(ProjectRef(uri("../project1"), "project1JS")))
.enablePlugins(ScalaJSPlugin)
val project2JVM = project.in(file("jvm"))
.settings(commonSettings: _*)
.configure(_.dependsOn(ProjectRef(uri("../project1"), "project1JVM")))
我的第二个项目编译得很好,但这引发了一个问题,因为我现在可以访问 project1 的类路径,这可能会导致冲突。例如,我收到警告说已找到多个 logback.xml 文件,并且还可以提取不正确的 application.conf 文件。
是否有更好的方法依赖于 project1 的来源?
我能想到的最佳替代解决方案是将 unmanagedSourceDirectories 设置添加到我的第二个项目。因此,例如通过执行:
val project2JVM = project.in(file("jvm"))
.settings(commonSettings: _*)
.settings(
unmanagedSourceDirectories in Compile +=
baseDirectory.value / ".." / ".." / "project1" / "shared" / "src" / "main" / "scala",
)
Project2 现在可以访问 Project1 中的共享源,而无需访问其类路径中 Project1 的资源
我有两个使用 scalajs 的项目,其中第二个项目需要访问第一个项目的源代码。我定义我的第一个 project.sbt 如下:
val commonSettings = Seq(
name := "project1",
unmanagedSourceDirectories in Compile +=
baseDirectory.value / ".." / "shared" / "src" / "main" / "scala",
)
val project1JS = project.in(file("js"))
.settings(commonSettings: _*)
.enablePlugins(ScalaJSPlugin)
val project1JVM = project.in(file("jvm"))
.settings(commonSettings: _*)
为了让项目 2 能够访问项目 1 的源代码,我将其 sbt 定义如下:
val commonSettings = Seq(
name := "project2",
unmanagedSourceDirectories in Compile +=
baseDirectory.value / ".." / "shared" / "src" / "main" / "scala",
)
val project2JS = project.in(file("js"))
.settings(commonSettings: _*)
.configure(_.dependsOn(ProjectRef(uri("../project1"), "project1JS")))
.enablePlugins(ScalaJSPlugin)
val project2JVM = project.in(file("jvm"))
.settings(commonSettings: _*)
.configure(_.dependsOn(ProjectRef(uri("../project1"), "project1JVM")))
我的第二个项目编译得很好,但这引发了一个问题,因为我现在可以访问 project1 的类路径,这可能会导致冲突。例如,我收到警告说已找到多个 logback.xml 文件,并且还可以提取不正确的 application.conf 文件。
是否有更好的方法依赖于 project1 的来源?
我能想到的最佳替代解决方案是将 unmanagedSourceDirectories 设置添加到我的第二个项目。因此,例如通过执行:
val project2JVM = project.in(file("jvm"))
.settings(commonSettings: _*)
.settings(
unmanagedSourceDirectories in Compile +=
baseDirectory.value / ".." / ".." / "project1" / "shared" / "src" / "main" / "scala",
)
Project2 现在可以访问 Project1 中的共享源,而无需访问其类路径中 Project1 的资源