Swi*_*Run 3 rust rust-crates rust-cargo
有没有一种可靠的方法(也许是货物 CLI 中的某些东西)来获取板条箱的版本?
我可以在 Cargo.toml 上进行 grep,但我正在寻找 6 个月内不会损坏的东西。
有没有更好的办法?
获取有关包或工作区元数据的一般方法是通过cargo metadata
命令,该命令会生成包含工作区包、依赖项、目标等的 JSON 输出。但是它非常冗长。
如果您不在工作区中,那么您可以简单地获取第一个包的版本,不包括依赖项(使用 解析jq
):
> cargo metadata --format-version=1 --no-deps | jq '.packages[0].version'
"0.1.0"
Run Code Online (Sandbox Code Playgroud)
但是,如果您在工作区中,则会有多个包(即使在排除依赖项之后)并且似乎按字母顺序排列。您需要知道包的名称:
> cargo metadata --format-version=1 --no-deps | jq '.packages[] | select(.name == "PACKAGE_NAME") | .version'
"0.1.0"
Run Code Online (Sandbox Code Playgroud)