You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将打包为Jar的Scala代码导入另一个IntelliJ SBT项目?

嘿,我来帮你一步步搞定这个问题——把这段Scala代码打包成Jar,再导入到另一个IntelliJ的SBT项目里,其实很简单,分两大步走就行:

第一步:把你的代码打包成Jar包

首先,你得先把这段代码放到一个标准的SBT项目结构里(手动单个文件打包太麻烦,用SBT是最省心的选择)。项目结构得是这样的:

my-greeting-lib/
├── build.sbt
└── src/
    └── main/
        └── scala/
            └── yyy/
                └── Hello.scala  // 把你的代码全放这里就行,或者把Greeting trait单独拆成文件也可以

然后在build.sbt里写最基础的配置(注意Scala版本要和你后续要导入的目标项目版本一致,不然会有兼容性坑):

name := "my-greeting-lib"
version := "1.0.0"
scalaVersion := "2.13.12" // 替换成你目标项目用的Scala版本,比如2.12.x或者3.x

接下来打包:

  • 要么在IntelliJ里打开这个项目,找到右侧的SBT面板,双击package任务
  • 要么直接在项目根目录打开终端,运行sbt package

打包完成后,Jar包会出现在target/scala-2.13/my-greeting-lib_2.13-1.0.0.jar这个路径里(路径里的Scala版本号对应你build.sbt里写的版本)。

第二步:把Jar包导入到目标IntelliJ SBT项目

这里有两种常用方式,选哪种看你的需求:

方式一:直接丢到项目的lib文件夹(简单粗暴,适合临时用)

  1. 打开你的目标SBT项目,在根目录新建一个lib文件夹(如果还没有的话)
  2. 把刚才生成的Jar包复制进去
  3. 回到IntelliJ,右键点击项目,选择SBT -> Refresh SBT Projects
  4. 完事!现在你就能直接在目标项目里引用代码了,比如:
import yyy.Greeting

object TestApp extends App {
  val greet = new Greeting {}
  println(greet.greeting)
}

方式二:发布到本地仓库,用SBT依赖引入(更规范,适合需要频繁更新库的情况)

如果以后你还要改这个库的代码,这种方式不用每次都复制Jar,更方便:

  1. 在打包项目的project文件夹下新建plugins.sbt,添加(其实本地发布不用签名,不过有些SBT版本可能需要这个插件):
addSbtPlugin("com.github.sbt" % "sbt-pgp" % "2.2.1")
  1. 回到打包项目根目录,运行sbt publishLocal——这个命令会把你的库发布到本地Maven/Ivy仓库(一般在~/.m2/repository或者~/.ivy2/local)
  2. 然后在目标项目的build.sbt里添加依赖:
// 如果你没在打包项目里指定organization,默认是default
libraryDependencies += "default" % "my-greeting-lib_2.13" % "1.0.0"
// 要是你在打包项目的build.sbt里加了organization := "com.yourname",那依赖就写成:
// libraryDependencies += "com.yourname" % "my-greeting-lib_2.13" % "1.0.0"
  1. 最后刷新IntelliJ的SBT项目,就能愉快地引用这个库了!
几个要注意的坑
  • 一定要保证打包项目和目标项目的Scala版本完全一致,不然会出现找不到类或者兼容性错误
  • 你的代码没有额外依赖,所以用sbt package生成的Jar就够了;如果以后你的库有依赖,要生成包含所有依赖的Fat Jar,就得用sbt assembly插件
  • 用方式一的话,Jar包放在lib文件夹后,SBT会自动识别,不用额外配置

内容的提问来源于stack exchange,提问作者Ankit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:29:29