我正在创建一个图书馆,它快要发布第一个版本了,所以我想将它上传到crates.io
。这个库有一个多箱设计,所以最终我得到了类似这样的东西:
- CrateA
- CrateProcMacros
- CrateC
- CrateD
- CrateE
- CrateF
- Cargo.toml (handles the workspace)
- Cargo.lock
...
其中CrateA
是其他crate的父级,它依赖于另一个本地crate,并且一些crate也依赖于另一个crate。我的意思是,它是库的主要crate,负责公开项目的公共API,并且我想要在crates.io
上发布唯一的crate。
阅读cargo文档,我发现我无法将唯一的crate发布到注册表中。所有内容都将被上传和发布。
那么,我有什么替代方案可以只将我的CrateA
发布到注册表中吗?我应该更改项目的结构,将所有其他包移动到CrateA
中,然后尝试发布它吗?还是有其他方法可以实现这一点?
编辑
CrateA
直接依赖于其他crate。而这些crate也依赖于工作区内的其他crate。