Saya menggunakan pakar sebagai alat bantu. Saya telah menetapkan variabel lingkungan bernama env
. Bagaimana saya bisa mendapatkan akses ke nilai variabel lingkungan ini dalam pom.xml
file?
java
maven
environment-variables
pom.xml
pengguna1016403
sumber
sumber
${env.XYZ}
referensi sebagai merah. Variabel diperluas dengan benar saat runtime tetapi ditampilkan sebagai merah pada waktu kompilasi. Karena itu saya memiliki pertanyaan yang sama dengan yang awalnya ditanyakan.Jawaban:
Lihat Panduan Properti Maven ...
Seperti yang Seshagiri tunjukkan dalam komentar,
${env.VARIABLE_NAME}
akan melakukan apa yang Anda inginkan.Saya akan menambahkan satu kata peringatan dan mengatakan bahwa
pom.xml
harus benar-benar menggambarkan proyek Anda jadi silakan gunakan variabel lingkungan dengan bijaksana. Jika Anda membuat bangunan Anda bergantung pada lingkungan Anda, mereka akan lebih sulit untuk diperbanyaksumber
Mungkin lebih aman untuk langsung mengirimkan variabel lingkungan ke properti sistem pakar. Misalnya, katakan pada Linux Anda ingin mengakses variabel lingkungan MY_VARIABLE. Anda dapat menggunakan properti sistem dalam file pom Anda.
Tetapkan nilai properti pada baris perintah pakar:
sumber
Juga, pastikan bahwa Anda variabel lingkungan yang terdiri hanya dengan UPPER CASE HURUF .... Aku tidak tahu mengapa (dokumentasi tidak mengatakan apa-apa eksplisit tentang hal itu, setidaknya link yang diberikan oleh @ Andrew Putih), tetapi jika variabelnya adalah huruf kecil (mis. env.dummy), variabel selalu kosong atau kosong ...
Saya berjuang dengan ini seperti satu jam, sampai saya memutuskan untuk mencoba KASUS YANG BERBAGAI, dan masalah terpecahkan.
Contoh Variabel OK:
( Catatan : saya menggunakan maven v3.0.5)
Semoga ini bisa membantu seseorang ....
sumber
Tidak bisakah kita menggunakan
sumber
Saya berjuang dengan hal yang sama, menjalankan skrip shell yang mengatur variabel, kemudian ingin menggunakan variabel di shared-pom. Tujuannya adalah agar variabel lingkungan mengganti string dalam file proyek saya menggunakan com.google.code.maven-replacer-plugin.
Menggunakan
${env.foo}
atau${env.FOO}
tidak bekerja untuk saya. Maven tidak menemukan variabel. Apa yang berhasil adalah melewatkan variabel sebagai parameter baris perintah di Maven. Ini pengaturannya:Atur variabel dalam skrip shell. Jika Anda meluncurkan Maven dalam sebuah sub-skrip, pastikan variabelnya sudah diatur, misalnya menggunakan
source ./maven_script.sh
untuk memanggilnya dari skrip induk.Di shared-pom, buat param baris perintah yang mengambil variabel lingkungan:
Di com.google.code.maven-replacer-plugin, buat nilai penggantian
${foo}
.Dalam skrip shell saya yang memanggil pakar, tambahkan ini ke perintah:
-Dfoo=$foo
sumber
Anda dapat menggunakan
<properties>
tag untuk menentukan variabel dan${variable}
pola khusus untuk menggunakannyasumber