仕事でRustを使うにあたり、crates.ioには公開しない方法で自作のライブラリを使用しようとしている。 少し整理してみると次のような環境。 * 自社内のGitリポジトリを使用 * コンパイル対象もその依存先のライブラリもそれぞれ自社Gitリポジトリにてホストされている * ビルド環境はJenkins CI上で稼働させているコンテナ できていなかったことは、Jenkins内でコンテナを作ろうとしていて、そのためにコンパイル対象のRustのプロジェクトの他に、依存しているプライベートのライブラリを取得するというところ。 次のようなエラーが出ている状況だった。 Compiling xxxxx_lib v0. 1.0 (/home/ubuntu/workspace/xxxx_tool/xxxx_loader) Checking cfg- if v0. 1.10 Checking bitreader v0. 3.2 Checking byteorder v1. 3.4 Checking num_enum v0. 5.0 error[E0463]: can 't find crate for `log` --> src/main.rs: 3 : 1 | 3 | extern crate log; | ^^^^^^^^^^^^^^^^^ can 't find crate error: aborting due to previous error For more information about this error, try `rustc --explain E0463`. そのときのmain.rsはこんな感じ。 #![cfg_attr(feature = "strict" , deny(warnings))] extern crate log; Cargo.tomlでの対象のライブラリへの依存指定はこんな感じ。 xxxxx_lib = { git = "https://xxxxx/xxxxx/xxxx.git" } 解決方法としては、JenkinsのCredentials managerから鍵を取ってきてコンパイル対象のプロジェクト