准备
发布 crate
时, 一旦发布无法修改,无法覆盖, 因此要注意邮箱等一些个人信息
访问crates.io 的 帐号设定页面,生成Token
并在命令行 执行 cargo login your token
此命令将告诉 Cargo
你的 API 令牌, 并将其存储在本地 ~/.cargo/credentials
crates.io
上crate
的名字, 会采取先到先得的方式分配.
打包 & 发布
对于 Cargo.toml:
[package]
name = "dashen"
version = "0.1.1"
authors = ["xxxx <x@xxxxxx.tech>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
ferris-says = "0.2"
执行cargo publish
:
这是因为缺少一些关键信息:关于该 crate 用途的描述和用户可能在何种条款下使用该 crate 的 license
想要修正这个错误, 需要在 Cargo.toml 中引入这些信息.
<font size=1 color="grey">
描述通常是一两句话, 它会出现在 crate 的搜索结果中和 crate 页面里.
对于 license 字段, 需要一个 license 标识符值(license identifier value)
Linux 基金会的 Software Package Data Exchange (SPDX) 列出了可以使用的标识符
例如指定 crate 使用 MIT License,可增加 MIT 标识符
</font>
[package]
name = "dashen"
version = "0.1.1"
authors = ["xxxx <xxx@xxxxx.tech>"]
edition = "2018"
description = "the first crate by xxxxx"
license = "MIT"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
ferris-says = "0.2"
再次执行 cargo publish
:
这是因为没有指定git仓库
新建一个仓库,指定为远程仓库,并提交代码
再次执行 cargo publish
:
此时也能在crates.io搜到刚刚发布的crate
英文版文档:
Publishing a Crate to Crates.io
中文版文档:
本文由mdnice多平台发布
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。