Panduan untuk Profil Maven

1. Gambaran keseluruhan

Profil Maven dapat digunakan untuk membuat konfigurasi binaan yang disesuaikan , seperti menargetkan tahap butiran ujian atau lingkungan penyebaran tertentu.

Dalam tutorial ini, kita akan belajar bagaimana bekerja dengan profil Maven.

2. Contoh Asas

Biasanya ketika kita menjalankan pakej mvn, ujian unit juga dijalankan . Tetapi bagaimana jika kita mahu mengemas artifak dengan cepat dan menjalankannya untuk melihat apakah ia berfungsi?

Pertama, kami akan membuat profil tanpa ujian yang menetapkan harta maven.test.skip menjadi benar:

 no-tests  true  

Seterusnya, kami akan melaksanakan profil dengan menjalankan perintah pv-pno-tes mvn . Kini artifak dibuat dan ujian dilangkau. Dalam kes ini, arahan mvn package -Dmaven.test.skip akan lebih mudah.

Namun, ini hanyalah pengenalan kepada profil Maven. Mari lihat beberapa persediaan yang lebih kompleks.

3. Menyatakan Profil

Pada bahagian sebelumnya, kami melihat cara membuat satu profil. Kita boleh mengkonfigurasi seberapa banyak profil yang kita mahukan dengan memberikan mereka id unik.

Katakanlah kami ingin membuat profil yang hanya menjalankan ujian integrasi kami dan yang lain untuk satu set ujian mutasi.

Kami akan memulakan dengan menentukan id untuk masing-masing dalam fail pom.xml kami :

  integration-tests   mutation-tests  

Dalam setiap elemen profil , kita dapat mengkonfigurasi banyak elemen seperti pergantungan , pemalam , sumber , nama akhir .

Jadi, untuk contoh di atas, kita boleh menambahkan pemalam dan kebergantungannya secara berasingan untuk ujian integrasi dan ujian mutasi .

Mengasingkan ujian ke dalam profil dapat menjadikan binaan lalai lebih cepat dengan memfokuskannya, katakanlah, hanya pada ujian unit.

3.1. Skop Profil

Sekarang, kami hanya meletakkan profil ini dalam fail pom.xml kami , yang menyatakannya hanya untuk projek kami.

Tetapi, di Maven 3, kita sebenarnya dapat menambahkan profil ke salah satu dari tiga lokasi:

  1. Profil khusus projek masuk ke fail pom.xml projek
  2. Profil pengguna khusus pergi ke pengguna settings.xml fail
  3. Profil global masuk ke dalam fail setting.xml global

Perhatikan bahawa Maven 2 menyokong lokasi keempat, tetapi ini dikeluarkan di Maven 3.

Kami cuba mengkonfigurasi profil di pom.xml seboleh-bolehnya. Sebabnya ialah kita mahu menggunakan profil baik pada mesin pembangunan kita dan pada mesin binaan. Menggunakan setting.xml lebih sukar dan terdedah kepada ralat kerana kita sendiri mesti menyebarkannya ke persekitaran bina.

4. Mengaktifkan Profil

Selepas kita membuat satu atau lebih profil, kita boleh mula menggunakannya, atau dengan kata lain, mengaktifkannya .

4.1. Melihat Profil Yang Aktif

Mari gunakan bantuan: matlamat profil aktif untuk melihat profil yang aktif dalam binaan lalai kami:

mvn help:active-profiles

Sebenarnya, kerana kami belum mengaktifkan apa-apa, kami mendapat:

The following profiles are active:

Tidak ada apa-apa.

Kami akan mengaktifkannya sebentar lagi. Tetapi dengan cepat, cara lain untuk melihat apa yang diaktifkan adalah memasukkan plugin help -ven di pom.xml kami dan mengikat matlamat profil aktif ke fasa penyusunan :

   org.apache.maven.plugins maven-help-plugin 3.2.0   show-profiles compile  active-profiles      

Sekarang, mari kita gunakan! Kami akan melihat beberapa cara yang berbeza.

4.2. Menggunakan -P

Sebenarnya, kita sudah melihat satu cara pada awalnya, iaitu kita dapat mengaktifkan profil dengan argumen -P .

Oleh itu mari kita mulakan dengan mengaktifkan profil ujian integrasi :

mvn package -P integration-tests

Sekiranya kita mengesahkan profil aktif, dengan maven-help-plugin atau bantuan mvn: aktif-profil -P integrasi-ujian arahan kita akan mendapat hasil berikut:

The following profiles are active: - integration-tests

Sekiranya kami ingin mengaktifkan beberapa profil pada masa yang sama, kami menggunakan senarai profil yang dipisahkan dengan koma:

mvn package -P integration-tests,mutation-tests

4.3. Aktif secara Lalai

Sekiranya kita selalu ingin melaksanakan profil, kita boleh menjadikannya aktif secara lalai:

 integration-tests  true  

Kemudian, kita dapat menjalankan pakej mvn tanpa menentukan profil, dan kita dapat mengesahkan bahawa profil ujian integrasi aktif.

Walau bagaimanapun, jika kita menjalankan perintah Maven dan mengaktifkan profil lain daripada profil activeByDefault dilangkau. Oleh itu, apabila kita menjalankan pakej mvn -P mutation-test maka hanya profil ujian mutasi yang aktif.

Apabila kita mengaktifkan dengan cara lain, profil activeByDefault juga dilangkau seperti yang akan kita lihat di bahagian seterusnya.

4.4. Berdasarkan Harta

Kita boleh mengaktifkan profil pada baris perintah. Namun, kadangkala lebih senang jika diaktifkan secara automatik. Sebagai contoh, kita dapat mendasarkannya pada harta sistem -D :

 active-on-property-environment   environment   

Kami sekarang mengaktifkan profil dengan pakej mvn -Denvironment command.

Anda juga boleh mengaktifkan profil jika harta tanah tidak ada:

 !environment 

Atau kita boleh mengaktifkan profil jika harta itu mempunyai nilai tertentu:

 environment test 

Kita sekarang boleh menjalankan profil dengan pakej mvn -Denvironment = test.

Terakhir, kita dapat mengaktifkan profil jika harta itu mempunyai nilai lain daripada nilai yang ditentukan:

 environment !test 

4.5. Berdasarkan Versi JDK

Pilihan lain adalah mengaktifkan profil berdasarkan JDK yang berjalan di mesin. Dalam kes ini, kami ingin mengaktifkan profil jika versi JDK bermula dengan 11:

 active-on-jdk-11  11  

Kami juga dapat menggunakan rentang untuk versi JDK seperti yang dijelaskan dalam Maven Version Range Syntax.

4.6. Berdasarkan Sistem Operasi

Sebagai alternatif, kita dapat mengaktifkan profil berdasarkan beberapa maklumat sistem operasi.

Dan jika kita tidak yakin dengan itu, pertama-tama kita dapat menggunakan perintah mvn نافذ: arahan -maklumat yang memberikan output berikut pada mesin saya:

Maven Version: 3.5.4 JDK Version: 11.0.2 normalized as: 11.0.2 OS Info: Arch: amd64 Family: windows Name: windows 10 Version: 10.0

Selepas itu, kita dapat mengkonfigurasi profil yang hanya diaktifkan pada Windows 10:

 active-on-windows-10   windows 10 Windows amd64 10.0   

4.7. Berdasarkan Fail

Pilihan lain adalah menjalankan profil jika fail ada atau hilang .

Oleh itu, mari buat profil ujian yang hanya dapat dilaksanakan sekiranya testreport.html belum ada:

  target/testreport.html  

5. Menyahaktifkan Profil

Kami telah melihat banyak cara untuk mengaktifkan profil, tetapi kadang-kadang kita juga perlu melumpuhkannya.

Untuk mematikan profil kita boleh menggunakan '!' atau '-'.

Oleh itu, untuk melumpuhkan profil aktif-on-jdk-11 kami melaksanakan perintah mvn compile -P -active-on-jdk-11 .

6. Kesimpulannya

Dalam artikel ini, kami telah melihat cara bekerja dengan profil Maven, sehingga kami dapat membuat konfigurasi binaan yang berbeza.

Profil membantu melaksanakan elemen-elemen tertentu dari binaan ketika kita memerlukannya. Ini mengoptimumkan proses pembuatan kami dan membantu memberi maklum balas yang lebih pantas kepada pembangun.

Jangan ragu untuk melihat fail pom.xml yang sudah selesai di GitHub.