当前位置: 首页 > news >正文

RUST 每日一省:发布到crates.io

        github是开源代码分享的地方,rust的开源项目除了github,我们还可以将其发布到 crates.io 上,然后其它用户就可以使用cargo进行安装使用了。其实步骤很简单,只有三条命令了,我们一次来看一下。

        1、cargo package

        首先,让 Cargo 帮你打个包:

        cargo package 命令会创建一个文件(这里是 target/package/xq-derive-0.1.0.crate),其中包含库的所有源文件,以及 Cargo.toml。这个文件就是你要上传到 crates.io 与世界共享的(可以通过 cargo package --list 来查看其中包含什么文件)。Cargo 随后会基于这个 .crate 文件构建库,就像最终用户一样,以确保没有问题。

        你可能会遇到很多问题,比如:

error: all dependencies must have a version specified when packaging.

        这是要求你的项目里,引用的crate必须是在crates.io上的,不能是本地引用的例如这种——image = {path = "vendor/image"}。

warning: manifest has no description, license, license-file, documentation,

        这种是,Cargo 认为 Cargo.toml 中缺少一些对下游用户来说非常重要的信息,比如你的代码以什么许可来发布。警告信息中的 URL 是很好的参考资源,因此这里就不详细解释了。简单来说,只要在 Cargo.toml 中添加以下几行内容就可以消除警告:

[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

        执行命令前,先登录到 crates.io 并取得 API 密钥。可以使用github账号直接登入,然后再个人的设置页面,找到API Tokens,生成新的Token;然后使用命令:

 cargo login abcdefghijklmnopqrstuvwxyz012345

该命令将告诉 Cargo 你的 API Token,然后将其存储在本地的 ~/.cargo/credentials.toml 文件中。注意这个 API 密钥就像密码一样要保密。所以要记住只在你自己控制的计算机中运行这个命令。

3、cargo pushlish

直接项目根目录下,执行 cargo publish,就可以了。

需要注意的是,由于平时网络问题,我都使用国内的源,所以需要再命令后添加 --registry crates-io.

http://www.lryc.cn/news/317308.html

相关文章:

  • String类及其常用方法
  • 1094. 拼车
  • Docker进阶:深入了解容器数据卷
  • 升级版本彻底解决bootstrap-table-fixed-columns固定列后行对不齐问题
  • 打破边界:深入探索STUN在实现无缝NAT穿越和WebRTC通信中的核心作用
  • 浅谈 前端的动态绑定属性
  • Sklearn支持向量机
  • 【Lazy ORM】 小工具 acw 本地客户端 你负责点击页面,他负责输出代码
  • 《详解:鸿蒙NEXT开发核心技术》
  • 快速排序 刷题笔记
  • DAY by DAY 史上最全的Linux常用命令汇总----man
  • 十六、接口隔离原则、反射、依赖注入
  • Docker 进阶
  • 科研学习|论文解读——一种修正评分偏差并精细聚类中心的协同过滤推荐算法
  • 云计算项目十一:构建完整的日志分析平台
  • 2.经典项目-海量用户即使通讯系统
  • 基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的交通标志识别系统详解(深度学习模型+UI界面代码+训练数据集)
  • VMware下创建虚拟机
  • 基于Ambari搭建大数据分析平台
  • Vue template到render过程,以及render的调用时机
  • 阿里云服务器Ngnix配置SSL证书开启HTTPS访问
  • 12 list的使用
  • 控件交互与视图交互的区别
  • 打包 加載AB包 webGl TextMeshPro 變紫色的原因
  • 美易官方:去年全球企业派息1.66万亿美元创新高
  • 基于Springboot的面向智慧教育的实习实践系统设计与实现(有报告)。Javaee项目,springboot项目。
  • 【数据库-黑马笔记】基础-SQL
  • MySQL性能分析:性能模式和慢查询日志的使用
  • 【哈希表算法题记录】15. 三数之和,18. 四数之和——双指针法
  • 代码随想录算法训练营Day44 ||leetCode 完全背包 || 518. 零钱兑换 II || 377. 组合总和 Ⅳ