? ? ? ? github是開源代碼分享的地方,rust的開源項(xiàng)目除了github,我們還可以將其發(fā)布到?crates.io?上,然后其它用戶就可以使用cargo進(jìn)行安裝使用了。其實(shí)步驟很簡單,只有三條命令了,我們一次來看一下。
? ? ? ? 1、cargo package
????????首先,讓 Cargo 幫你打個(gè)包:
????????cargo package 命令會(huì)創(chuàng)建一個(gè)文件(這里是 target/package/xq-derive-0.1.0.crate),其中包含庫的所有源文件,以及 Cargo.toml。這個(gè)文件就是你要上傳到 crates.io 與世界共享的(可以通過 cargo package --list 來查看其中包含什么文件)。Cargo 隨后會(huì)基于這個(gè) .crate 文件構(gòu)建庫,就像最終用戶一樣,以確保沒有問題。
? ? ? ? 你可能會(huì)遇到很多問題,比如:
error: all dependencies must have a version specified when packaging.
? ? ? ? 這是要求你的項(xiàng)目里,引用的crate必須是在crates.io上的,不能是本地引用的例如這種——image = {path = "vendor/image"}。
warning: manifest has no description, license, license-file, documentation,
????????這種是,Cargo 認(rèn)為 Cargo.toml 中缺少一些對(duì)下游用戶來說非常重要的信息,比如你的代碼以什么許可來發(fā)布。警告信息中的 URL 是很好的參考資源,因此這里就不詳細(xì)解釋了。簡單來說,只要在 Cargo.toml 中添加以下幾行內(nèi)容就可以消除警告:
[package]
name = "xq-derive"
version = "0.1.0"
edition = "2018"
authors = ["Kent Xu <xq-310@163.com>"]
description = "Used to write eDSL proc-macro ."
license = "MIT OR Apache-2.0"
homepage = "https://github.com/XuHugo/xq-derive"
repository = "https://github.com/XuHugo/xq-derive"
documentation = "https://github.com/XuHugo/xq-derive"
2、cargo login
? ? ? ? 執(zhí)行命令前,先登錄到 crates.io 并取得 API 密鑰??梢允褂胓ithub賬號(hào)直接登入,然后再個(gè)人的設(shè)置頁面,找到API Tokens,生成新的Token;然后使用命令:
cargo login abcdefghijklmnopqrstuvwxyz012345
該命令將告訴 Cargo 你的 API Token,然后將其存儲(chǔ)在本地的?~/.cargo/credentials.toml
?文件中。注意這個(gè) API 密鑰就像密碼一樣要保密。所以要記住只在你自己控制的計(jì)算機(jī)中運(yùn)行這個(gè)命令。
3、cargo pushlish
直接項(xiàng)目根目錄下,執(zhí)行 cargo publish,就可以了。
文章來源:http://www.zghlxwxcb.cn/news/detail-838003.html
需要注意的是,由于平時(shí)網(wǎng)絡(luò)問題,我都使用國內(nèi)的源,所以需要再命令后添加 --registry crates-io.文章來源地址http://www.zghlxwxcb.cn/news/detail-838003.html
到了這里,關(guān)于RUST 每日一?。喊l(fā)布到crates.io的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!