use std::process::Command; fn main() { let out_dir = std::env::var_os("OUT_DIR") .map(|v| v.into_string().ok()) .flatten() .map(|v| v + "/libs"); if let Some(out_dir) = out_dir { let output = command() .arg("dependency:copy-dependencies") .arg(format!("-DoutputDirectory={}", out_dir)) .output(); if let Err(e) = output { println!("cargo:warning=Download dependencies failed."); println!("cargo:warning={}", e); } } println!("cargo:rerun-if-changed=pom.xml"); } #[cfg(windows)] fn command() -> Command { let mut command = Command::new("cmd"); command.arg("/c").arg("mvn"); command } #[cfg(not(windows))] fn command() -> Command { Command::new("mvn") }