首页 > 解决方案 > 如何使用凿子模块作为包

问题描述

对于 scala 人来说,这一定是一个显而易见的答案。但对于像我这样的新 scala 用户来说,它不是 ;)

我有两个具有“标准”层次结构(spi2wbmdio)的 scala 模块(包),我想在第三个项目/模块中使用它们。

我的 spi2wb 模块的文件目录层次结构如下:

├── build.sbt
├── Makefile
├── README.md
└── src
    ├── main
    │   └── scala
    │       └── spi2wb.scala
    └── test
        └── scala
            └── test_spi2wb.scala

在 Scala 源代码中,我添加了包头:

package spi2wb
package mdio

这两个项目在我的家用电脑硬盘上。我想知道如何在我的第三个项目中以“import *”的方式使用这两个模块,如时尚:

import mdio._
import spi2wb._

同样,这可能很简单,但我找不到一个简单的方法来做到这一点。

标签: scalasbtchisel

解决方案


我找到了 publishLocal 的解决方案。

在每个模块的 build.sbt 中,我添加了一个版本和组织:

version := "1.0-rc2" 

organization := "org.armadeus"

然后对于每个子模块,我启动了 publishLocal 命令:

$ sbt publishLocal

在我的主要“顶级”模块的 sbt 中,我添加了依赖项:

libraryDependencies ++= Seq("org.armadeus" %% "spi2wb" % "1.1")

libraryDependencies ++= Seq("org.armadeus" %% "mdio" % "1.0-rc2")

请注意不要忘记双 %% 符号作为第一个分隔符,以使其适用于您的 scala 版本。

我不知道这是否是这样做的好方法,但它正在工作。


推荐阅读