Bagaimana menjalankan Maven dari direktori lain (tanpa cd ke project dir)?
248
Andaikata proyek maven saya berlokasi di /some/location/projectdan lokasi saya saat ini adalah /another/location/bagaimana saya bisa menjalankan maven build tanpa mengubah ke lokasi proyek cd /some/location/project?
@khmarbaise - Saya mencoba mengotomatiskan pembuatan dan penerapan menggunakan beberapa skrip shell dan tidak selalu menggunakan cd untuk mengubah dir.
Ali Shakiba
@khmarbaise - Anda mungkin ingin merujuk ke beberapa file atau folder di atau dekat satu direktori, tetapi pom Anda dan file yang dirujuk berada di direktori lain.
jyoungdev
Jawaban:
432
Anda dapat menggunakan parameter -fdan menentukan path ke file pom Anda, misalnyamvn -f /path/to/pom.xml
Ini menjalankan pakar "seolah-olah" itu ada di /path/todirektori kerja.
Tidak, -f memulai Maven dengan pom spesifik itu, dan menurut definisi direktori di mana pom berada, adalah direktori yang berfungsi untuk Maven. Saya menggunakan ini di CI-Server saya untuk membangun modul spesifik di subdirektori, dan saya dapat meyakinkan Anda, bahwa itu berfungsi.
dunni
15
Gunakan titik untuk jalur relatif. misalnya./path/pom.xml
Snekse
3
Seperti kata dunni, ini tidak berhasil. Dir saat ini adalah di mana Anda berada. Kamu hanya menggunakan pom di dir lain. Maven tidak mendukung ini.
kabut
1
java.lang.IllegalArgumentException: Parameter 'direktori' bukan direktori
Damir Olejar
Bekerja untuk sebagian besar proyek saya. Sayangnya, beberapa proyek yang menggunakan plugin exec tidak dapat dibuat dengan cara ini karena plugin tidak menemukan executable walaupun direktori kerja dikonfigurasikan.
user2043553
15
Saya tidak berpikir pakar mendukung ini. Jika Anda menggunakan Unix, dan tidak ingin meninggalkan direktori Anda saat ini, Anda bisa menggunakan skrip shell kecil, fungsi shell, atau hanya sub-shell:
Saya menyadari ini tidak menjawab pertanyaan spesifik, tetapi dapat memberi Anda apa yang Anda cari. Saya tidak terbiasa dengan shell Windows, meskipun Anda harus dapat mencapai solusi serupa di sana juga.
Luar biasa. mvn -f param tidak bekerja dengan proyek multimodule menggunakan jalur relatif untuk referensi pom anak. Terima kasih, itulah yang saya cari.
redochka
1
Ini berfungsi di Mac (dan saya tahu ini akan bekerja di Linux). Pada Windows (atau platform apa pun) Anda harus dapat menyimpan jalur saat ini, cd ke proyek Anda, melakukan hal-hal mvn di sana dan cd kembali dalam skrip. Satu-satunya masalah adalah jika script berhenti di tengah jalan.
Erk
8
Bagi saya, bekerja seperti ini: mvn -f /path/to/pom.xml [goals]
Jawaban:
Anda dapat menggunakan parameter
-f
dan menentukan path ke file pom Anda, misalnyamvn -f /path/to/pom.xml
Ini menjalankan pakar "seolah-olah" itu ada di
/path/to
direktori kerja.sumber
./path/pom.xml
Saya tidak berpikir pakar mendukung ini. Jika Anda menggunakan Unix, dan tidak ingin meninggalkan direktori Anda saat ini, Anda bisa menggunakan skrip shell kecil, fungsi shell, atau hanya sub-shell:
Sebagai fungsi bash (yang bisa Anda tambahkan ke ~ / .bashrc):
Saya menyadari ini tidak menjawab pertanyaan spesifik, tetapi dapat memberi Anda apa yang Anda cari. Saya tidak terbiasa dengan shell Windows, meskipun Anda harus dapat mencapai solusi serupa di sana juga.
Salam
sumber
Bagi saya, bekerja seperti ini:
mvn -f /path/to/pom.xml [goals]
sumber
Anda dapat mencoba ini:
sumber