Impor versi ketergantungan yang memerlukan ketergantungan lain [duplikat]
Saya memiliki dua peti X
dan Z
saya ingin menggunakan keduanya tetapi X
tergantung Z
pada beberapa versi tertentu. Misalnya, mongodb bergantung pada tokio 0.2 dan saya menggunakan tokio 0.3.
X
tidak re-ekspor Z
jadi saya (berpikir) harus menentukan secara manual Z
di Cargo.toml
. Jika saya menentukan versi yang salah, itu mungkin rusak. Bagaimana saya bisa memberi tahu kargo untuk menggunakan versi apa pun Z
yang X
diperlukan?
Jawaban
Cargo memiliki beberapa kemampuan resolusi versi ketergantungan otomatis. Anda harus dapat menentukan persyaratan versi apa pun yang Z
Anda butuhkan, dan cargo akan mengetahui cara memilih versi yang benar untuk (berpotensi) digunakan baik dalam kode maupun X
. Ini mengasumsikan kedua peti menggunakan versi semantik dengan benar.
Jika X
tidak terekspos Z
dengan cara apa pun, Anda tidak perlu menggunakan versi yang sama dari Z
. Jika Anda menggunakan versi mayor yang berbeda Z
dari X
, Cargo hanya akan menggunakan kedua versi Z
, sekali untuk Anda dan sekali untuk X
.
Lihat komentar alexcrichton tentang ini untuk sedikit lebih detail.