Can I add a dependent crate that is a subdirectory

2019-02-25 14:36发布

问题:

I want to use an EDN parser but it is inside https://github.com/mozilla/mentat. https://github.com/mozilla/mentat/tree/master/edn has its own Cargo.toml.

I tried this:

[dependencies]
edn = { git = "https://github.com/mozilla/mentat/tree/master/edn" }

But it doesn't work.

Is it possible to add dependency to this crate inside the mentat repository?

回答1:

From the Cargo documentation:

Cargo will fetch the git repository at this location then look for a Cargo.toml for the requested crate anywhere inside the git repository (not necessarily at the root).

(emphasis mine)

This means that you can just say:

[dependencies]
edn = { git = "https://github.com/mozilla/mentat" }