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

如何在不修改build.sbt的情况下打包Scala项目指定目录?

仅打包指定目录的Jar包(无需修改build.sbt)

方法一:通过sbt命令行临时配置过滤打包内容

直接在命令行执行带临时设置的sbt打包命令,过滤掉不需要的路径:

sbt 'set mappings in (Compile, package) := (mappings in (Compile, package)).value.filter { case (file, path) => path.startsWith("com/foo/bar/foo1/") }' package

执行后生成的Jar包会只保留com/foo/bar/foo1/路径下的所有类文件,符合你期望的结构。

方法二:手动编译后用jar命令打包

如果觉得命令行设置太繁琐,可以手动处理编译后的类文件:

  1. 先编译整个项目:
    sbt compile
    
  2. 进入编译后的类文件目录(替换<scala-version>为你项目使用的Scala版本,比如2.13.10或3.3.1):
    cd target/scala-<scala-version>/classes
    
  3. 用jar命令仅打包指定目录:
    jar cvf ../../some-specific-package.jar com/foo/bar/foo1/
    
    这条命令会在target目录下生成some-specific-package.jar,结构完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 07:07:07