cargo package命令打包你的工程,生成一个文件,比如:
target/package/fern\_sim-0.1.0.crate。包含你库的源代码,还有Cargo.toml文件。这个文件用来上传到crates.io供全世界使用。你可以用cargo package --list命令查看到底哪些文件被打包了。之后cargo会根据生成的.crate文件再构建一次库。
Cargo会报警告,你在Cargo.toml文件里的\[package\]段缺少一些重要的信息,比如协议。你可以添加一些信息来消除警告。一旦你发布到了crates.io上,如果authors属性包含了邮箱地址,那么邮箱地址就公开了,第一次发布应该想好用哪个邮箱。
假如你的Cargo.toml里有依赖本地文件系统目录的库,并且包发布到了crates.io,使用者会忽略那个路径,导致构建报错。
如果你依赖的库也在crates.io上,应该把依赖的本地路径换成版本号。你也可以同时指定本地路径和版本号,这样在本地使用的时候会优先使用本地的文件系统路径。比如:
image = {path="vendor/image", version="0.6.1"}
这行情况保证版本号和本地路径代码的一致是你的责任。
当你在crates.io注册之后,会获得一个api的key,可以用于命令行登录,比如
cargo login xxxx,这个key应该保管好,类似你密码。
最后运行cargo publish命令上传发布。
