cellar
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseCellar
Cellar
Use cellar to look up the API of JVM dependencies instead of guessing or manually downloading, unpacking, and searching JAR files for type signatures.
使用cellar查询JVM依赖的API,无需猜测或手动下载、解压并搜索JAR文件来查找类型签名。
Prerequisites
前提条件
Run to verify cellar is on PATH. If not found, the user
needs to install it: https://github.com/VirtusLab/cellar#installation
cellar --version运行 验证cellar是否在PATH中。如果未找到,用户需要安装它:https://github.com/VirtusLab/cellar#installation
cellar --versionProject-aware commands (run from project root)
项目感知命令(从项目根目录运行)
Query the current project's code and all its dependencies. Cellar auto-detects the build tool (Mill, sbt, scala-cli).
cellar get [--module <name>] <fqn> # single symbol (signature, members, docs)
cellar list [--module <name>] <package> # list symbols in a package or class
cellar search [--module <name>] <query> # case-insensitive substring search- Mill/sbt projects: is required (e.g.
--module,--module lib)--module core - scala-cli projects: omit
--module - : skip classpath cache, re-extract from build tool
--no-cache - : override JRE classpath
--java-home <path> - ,
-l: max results for--limit <N>/list(default: 50), max members forsearchget - : show only members declared on the type itself (
--hide-inheritedcommands)get - : group members by declaring type with section headers (
--group-inheritedcommands)get
查询当前项目的代码及其所有依赖。Cellar会自动检测构建工具(Mill、sbt、scala-cli)。
cellar get [--module <name>] <fqn> # 单个符号(签名、成员、文档)
cellar list [--module <name>] <package> # 列出包或类中的符号
cellar search [--module <name>] <query> # 不区分大小写的子串搜索- Mill/sbt项目:必须使用(例如
--module、--module lib)--module core - scala-cli项目:省略
--module - :跳过类路径缓存,从构建工具重新提取
--no-cache - :覆盖JRE类路径
--java-home <path> - ,
-l:--limit <N>/list的最大结果数(默认:50),search的最大成员数get - :仅显示类型自身声明的成员(
--hide-inherited命令)get - :按声明类型分组成员并显示章节标题(
--group-inherited命令)get
External commands (query arbitrary Maven coordinates)
外部命令(查询任意Maven坐标)
Query any published artifact by explicit coordinate ():
group:artifact:versioncellar get-external <coordinate> <fqn> # single symbol
cellar list-external <coordinate> <package> # list symbols
cellar search-external <coordinate> <query> # search by name
cellar get-source <coordinate> <fqn> # fetch source code
cellar deps <coordinate> # dependency tree- Coordinates must be explicit: (no
group:artifact_3:versionshorthand):: - For sbt plugins, use the full Scala and sbt suffix: (e.g.
group:artifact_2.12_1.0:version)org.scala-native:sbt-scala-native_2.12_1.0:latest - For compiler plugins and other artifacts with full Scala version suffixes, use the full version:
group:artifact_3.3.8:version - Use as the version to resolve the most recent release
latest - ,
-r: extra Maven repository (repeatable)--repository <url>
通过明确的坐标()查询任何已发布的制品:
group:artifact:versioncellar get-external <coordinate> <fqn> # 单个符号
cellar list-external <coordinate> <package> # 列出符号
cellar search-external <coordinate> <query> # 按名称搜索
cellar get-source <coordinate> <fqn> # 获取源代码
cellar deps <coordinate> # 依赖树- 坐标必须明确:(不支持
group:artifact_3:version简写):: - 对于sbt插件,使用完整的Scala和sbt后缀:(例如
group:artifact_2.12_1.0:version)org.scala-native:sbt-scala-native_2.12_1.0:latest - 对于编译器插件和其他带有完整Scala版本后缀的制品,使用完整版本:
group:artifact_3.3.8:version - 使用作为版本来解析最新发布的版本
latest - ,
-r:额外的Maven仓库(可重复使用)--repository <url>
Workflow
工作流程
- Don't know the package? → /
cellar searchcellar search-external - Know the package, not the type? → /
cellar listcellar list-external - Know the type? → /
cellar getcellar get-external - Need the implementation? →
cellar get-source
- 不知道包名? → /
cellar searchcellar search-external - 知道包名,但不知道类型? → /
cellar listcellar list-external - 知道类型? → /
cellar getcellar get-external - 需要实现代码? →
cellar get-source
Examples
示例
sh
undefinedsh
undefinedLook up a Scala 3 trait
查询Scala 3 trait
cellar get-external org.typelevel:cats-core_3:2.10.0 cats.Monad
cellar get-external org.typelevel:cats-core_3:2.10.0 cats.Monad
Look up a Java class
查询Java类
cellar get-external org.apache.commons:commons-lang3:3.14.0 org.apache.commons.lang3.StringUtils
cellar get-external org.apache.commons:commons-lang3:3.14.0 org.apache.commons.lang3.StringUtils
List a package
列出包内内容
cellar list-external io.circe:circe-core_3:0.14.6 io.circe
cellar list-external io.circe:circe-core_3:0.14.6 io.circe
Search for a method
搜索方法
cellar search-external org.typelevel:cats-core_3:2.10.0 flatMap
cellar search-external org.typelevel:cats-core_3:2.10.0 flatMap
Get source code
获取源代码
cellar get-source org.typelevel:cats-core_3:2.10.0 cats.Monad
cellar get-source org.typelevel:cats-core_3:2.10.0 cats.Monad
Dependency tree
依赖树
cellar deps org.typelevel:cats-effect_3:3.5.4
cellar deps org.typelevel:cats-effect_3:3.5.4
sbt plugin (use full Scala + sbt suffix)
sbt插件(使用完整的Scala + sbt后缀)
cellar deps org.scala-native:sbt-scala-native_2.12_1.0:latest
cellar deps org.scala-native:sbt-scala-native_2.12_1.0:latest
Project-aware (from a Mill project root)
项目感知命令(从Mill项目根目录运行)
cellar get --module lib cats.Monad
cellar list --module core cats
cellar search --module lib flatMap
undefinedcellar get --module lib cats.Monad
cellar list --module core cats
cellar search --module lib flatMap
undefinedExample output
示例输出
cellar get-external --hide-inherited org.typelevel:cats-core_3:2.10.0 cats.Monadmarkdown
undefinedcellar get-external --hide-inherited org.typelevel:cats-core_3:2.10.0 cats.Monadmarkdown
undefinedcats.Monad
cats.Monad
trait Monad[F] extends FlatMap[F] with Applicative[F]
Use `--hide-inherited` to get only own members. Without it, all inherited members are shown (can be large for deep hierarchies).trait Monad[F] extends FlatMap[F] with Applicative[F]
使用`--hide-inherited`仅显示自身成员。如果不使用该参数,会显示所有继承的成员(对于深层继承结构,结果可能会很大)。When Metals MCP is also available
当Metals MCP也可用时
Prefer cellar only for external dependency API lookups ( vs Metals /): cellar requires no project import and works with any published Maven coordinate. For all other tasks — goto definition, find references, rename, diagnostics, compilation — use Metals.
cellar get-externalinspectget-docs仅在查询外部依赖API时优先使用cellar( 对比 Metals /):cellar无需导入项目,可与任何已发布的Maven坐标配合使用。对于所有其他任务——跳转定义、查找引用、重命名、诊断、编译——请使用Metals。
cellar get-externalinspectget-docsOutput
输出
- stdout: Markdown — ready to consume directly
- stderr: diagnostics (warnings, truncation notices)
- Exit 0: success, Exit 1: error
- 标准输出(stdout):Markdown格式——可直接使用
- 标准错误(stderr):诊断信息(警告、截断通知)
- 退出码0:成功,退出码1:错误