Pengantar Maven oleh Balaji Varnasi dan Sudha Belida (terjemahan)

Dari seorang penerjemah: Beberapa tahun yang lalu, saya menetapkan tujuan saya dengan cepat, tetapi cukup dekat untuk mengetahui kerangka kerja yang umum digunakan seperti Apache Maven . Hampir dengan segera, saya berhasil menemukan literatur yang sesuai, tetapi saya sedikit terkejut dengan kenyataan bahwa semua bahan yang rumit itu eksklusif dalam bahasa Inggris, sementara di Rusia ada banyak artikel yang tersebar, tetapi saya tidak dapat menemukan buku yang lengkap yang dapat dibaca dari depan ke belakang. berhasil Sebagai hasilnya, untuk membaca, saya memilih buku kecil, Introducing Maven, yang ditulis oleh Balaji Varnasi dan Sudha Belida dan diterbitkan oleh Apress pada tahun 2014. Karena semua tugas telah diselesaikan, saya secara bertahap melahirkan terjemahan dari publikasi ini, yang, meskipun sudah ada di meja saya selama beberapa tahun, mungkin masih bermanfaat bagi masyarakat.

Di sini saya memberikan terjemahan hanya satu dari bab-bab buku ini, tetapi keseluruhannya dapat diunduh di sini dari tautan-tautan ini dalam bahasa Inggris , atau dalam bahasa Rusia (PDF).

Bab 6: Pola Dasar Maven


Hingga saat ini, Anda membuat proyek Maven secara manual, membuat folder dan file pom.xml dari awal. Ini bisa membosankan, terutama jika Anda sering harus membuat proyek. Untuk mengatasi masalah ini, Maven menyediakan arketipe. Arketipe Maven adalah proyek yang telah ditentukan yang memungkinkan pengguna untuk dengan mudah membuat proyek baru.

Arketipe Maven juga menyediakan basis yang nyaman untuk berbagi pengalaman dan memastikan konsistensi struktur direktori Maven standar. Misalnya, perusahaan dapat membuat arketipe dengan lembar gaya kaskade perusahaan ( CSS ), pustaka yang disetujui JavaScript , dan komponen yang dapat digunakan kembali. Pengembang yang menggunakan arketipe ini untuk membuat proyek akan secara otomatis mengikuti standar perusahaan.

Built-in Archetypes


Out of the box, Maven menyediakan pengembang dengan ratusan arketipe. Selain itu, ada banyak proyek sumber terbuka yang menyediakan arketipe tambahan yang dapat Anda unduh dan gunakan. Maven juga menyediakan plug-in arketipe dengan tujuan untuk membuat arketipe dan menghasilkan proyek dari arketipe.

Plugin arketipe memiliki target pembuatan yang memungkinkan Anda untuk melihat dan memilih arketipe yang diperlukan. Listing 6-1 menampilkan hasil menjalankan target menghasilkan dari baris perintah. Seperti yang Anda lihat, 491 arketipe diberikan untuk dipilih (pada 2018 sudah ada lebih dari 2 ribu - sekitar Terjemahan) . Penggunaan beberapa di antaranya dibahas dalam bab ini.

Listing 6-1. Plugin pola dasar Maven menghasilkan panggilan target

$mvn archetype:generate [INFO] Scanning for projects... [INFO] [INFO] ----------------------------------------------------------------------- [INFO] Building Maven Stub Project (No POM) 1 [INFO] ----------------------------------------------------------------------- [INFO] [INFO] >>> maven-archetype-plugin:2.2:generate (default-cli) @ standalone- pom >>> [INFO] [INFO] <<< maven-archetype-plugin:2.2:generate (default-cli) @ standalone- pom <<< [INFO] [INFO] --- maven-archetype-plugin:2.2:generate (default-cli) @ standalone- pom [INFO] Generating project in Interactive mode [INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0) ........................... ........................... 1176: remote -> ru.yandex.qatools.camelot:camelot-plugin (-) 1177: remote -> se.vgregion.javg.maven.archetypes:javg-minimal-archetype (-) 1178: remote -> sk.seges.sesam:sesam-annotation-archetype (-) 1179: remote -> tk.skuro:clojure-maven-archetype (A simple Maven archetype for Clojure) 1180: remote -> tr.com .lucidcode:kite-archetype (A Maven Archetype that allows users to create a Fresh Kite project) 1181: remote -> uk.ac.rdg.resc:edal-ncwms-based-webapp (-) 1182: local -> com.inflinx.book.ldap:practical-ldap-empty-archetype (-) 1183: local -> com.inflinx.book.ldap:practical-ldap-archetype (-) Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 491: 

Pembuatan proyek web


Maven menyediakan arketipe maven-archetype-webapp untuk menghasilkan aplikasi web. Mari kita buat aplikasi seperti itu dengan memanggil perintah berikut di folder C: \ apress \ gswm-book \ chapter6 :

 mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp 

Perintah ini dijalankan secara interaktif. Untuk pertanyaan yang masuk, masukkan informasi berikut:

 Define value for property 'groupId': : com.apress.gswmbook Define value for property 'artifactId': : gswm-web Define value for property 'version': 1.0-SNAPSHOT: : <<Hit Enter>> Define value for property 'package': com.apress.gswmbook: : war Confirm the properties configuration: groupId: com.apress.gswmbook artifactId: gswm-web version: 1.0-SNAPSHOT package: war Y: <<Hit Enter>> 

Struktur folder yang dihasilkan akan terlihat seperti yang ditunjukkan pada Gambar 6-1 :

Gambar 6-1. Struktur proyek web Maven



File pom.xml minimal dan berisi satu ketergantungan - JUnit . Maven dapat menyederhanakan peluncuran aplikasi web Anda menggunakan server web tertanam seperti Tomcat atau Jetty . Listing 6-2 menampilkan file pom.xml yang dimodifikasi dengan plugin Tomcat ditambahkan.

Listing 6-2. File pom.xml yang dimodifikasi dengan plugin Tomcat tertanam

 <project xmlns=" http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.apress.gswmbook</groupId> <artifactId>gswm-web</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>gswm-web Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <finalName>gswm-web</finalName> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> </plugin> </plugins> </build> </project> 

Untuk menjalankan aplikasi web ini di server Tomcat , panggil perintah berikut di direktori root proyek:

 mvn tomcat7:run 

Anda akan melihat proyek terperinci dan hasil yang serupa dengan yang ditunjukkan pada Listing 6-3 .

Listing 6-3. Tomcat menjalankan output perintah

 Oct 11, 2014 12:08:43 PM org.apache.catalina.core.StandardService startInternal INFO: Starting service Tomcat Oct 11, 2014 12:08:43 PM org.apache.catalina.core.StandardEngine startInternal INFO: Starting Servlet Engine: Apache Tomcat/7.0.47 Oct 11, 2014 12:08:45 PM org.apache.catalina.util.SessionIdGenerator createSecureRandom INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [334] milliseconds. Oct 11, 2014 12:08:45 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["http-bio-8080"] 

Sekarang mulai browser Anda dan pergi ke localhost : 8080 / gswm-web / . Anda harus melihat halaman web seperti yang ditunjukkan pada Gambar 6-2 .

Gambar 6-2. Proyek web berjalan di browser



Proyek multimodular


Proyek Java Enterpise Edition (JEE) sering dibagi menjadi beberapa modul untuk memfasilitasi pengembangan dan pemeliharaan. Masing-masing modul ini menghasilkan artefak seperti Enterprise JavaBeans (EJBs) , layanan web, proyek web, dan JAR klien. Maven mendukung pengembangan proyek JEE besar seperti itu, memungkinkan Anda untuk meng-host beberapa proyek Maven di dalam proyek Maven lain. Struktur proyek multi-modul seperti itu ditunjukkan pada Gambar 6-3 . Proyek induk memiliki file pom.xml dan beberapa proyek Maven di dalamnya.

Gambar 6-3. Struktur proyek multi-modul



Sampai akhir bab ini, kami akan menjelaskan bagaimana membangun proyek multi-modul untuk tugas di mana Anda perlu membagi proyek besar menjadi aplikasi web (artefak WAR ) yang menyediakan antarmuka pengguna, proyek layanan (artefak JAR ) yang berisi kode lapisan layanan, dan proyek Kegigihan yang mengandung kode level repositori. Gambar 6-4 menunjukkan representasi visual dari skenario seperti itu.

Gambar 6-4. Proyek multimodular, Maven



Mari kita mulai proses dengan membuat proyek induk. Untuk melakukan ini, jalankan perintah berikut di prompt perintah di folder C: \ apress \ gswm-book \ chapter6:

 mvn archetype:generate -DgroupId=com.apress.gswmbook -DartifactId=gswm-parent -Dversion=1.0.0-SNAPSHOT -DarchetypeGroupId=org.codehaus.mojo.archetypes -DarchetypeArtifactId=pom-root 

Pola dasar pom-root membuat folder gswm-parent dan di dalamnya file pom.xml .

Seperti yang ditunjukkan pada Listing 6-4 , file pom.xml yang dihasilkan memiliki konten minimal. Perhatikan bahwa tipe pom ditentukan dalam tag kemasan proyek induk.

Listing 6-4. File induk pom.xml

 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.apress.gswmbook</groupId> <artifactId>gswm-parent</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>pom</packaging> <name>gswm-parent</name> </project> 

Sekarang buat proyek web dengan menjalankan perintah berikut di folder C: \ apress \ gswm-book \ chapter6 \ gswm-parent :

 mvn archetype:generate -DgroupId=com.apress.gswmbook -DartifactId=gswm-web -Dversion=1.0.0-SNAPSHOT -Dpackage=war -DarchetypeArtifactId=maven-archetype-webapp 

Dalam proses menghasilkan proyek web ini, Anda memberi Maven koordinat seperti groupId , versi , dll. Sebagai parameter yang diteruskan ke target pembuatan, yang menciptakan proyek web gswm .

Langkah selanjutnya adalah membuat proyek layanan. Dari folder C: \ apress \ gswm-book \ chapter6 \ gswm-parent, jalankan perintah berikut:

 mvn archetype:generate -DgroupId=com.apress.gswmbook -DartifactId=gswm-service -Dversion=1.0.0-SNAPSHOT -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 

Harap dicatat bahwa Anda tidak menentukan parameter paket , sebagai maven-archetype-quickstart membuat proyek JAR default. Perhatikan juga penggunaan parameter interactiveMode . Itu hanya memberitahu Maven untuk mengeksekusi perintah tanpa meminta pengguna untuk informasi apa pun.

Mirip dengan langkah sebelumnya, buat proyek Java gswm-repositori berikut dengan menjalankan perintah berikut dalam C: \ apress \ gswm-book \ chapter6 \ gswm-parent folder :

 mvn archetype:generate -DgroupId=com.apress.gswmbook -DartifactId=gswm-repository -Dversion=1.0.0-SNAPSHOT -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 

Sekarang setelah Anda memiliki semua proyek yang dihasilkan, lihat file pom.xml di folder gswm-parent . Listing 6-5 menampilkan isinya.

Listing 6-5. File pom.xml induk dengan modul

 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven 4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.apress.gswmbook</groupId> <artifactId>gswm-parent</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>pom</packaging> <name>gswm-parent</name> <modules> <module>gswm-web</module> <module>gswm-service</module> <module>gswm-repository</module> </modules> </project> 

Elemen modul memungkinkan Anda untuk mendeklarasikan modul anak dalam proyek multi-modul. Karena setiap modul dihasilkan, Maven mendaftarkannya sebagai anak-anak. Selain itu, ia memodifikasi file pom.xml dari modul itu sendiri, menambahkan informasi tentang pom.xml induk kepada mereka . Listing 6-6 menampilkan file pom.xml dari proyek gswm-web , yang menentukan elemen pom induk.

Listing 6-6. File pom.xml modul web

 <?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.apress.gswmbook</groupId> <artifactId>gswm-parent</artifactId> <version>1.0.0-SNAPSHOT</version> </parent> <groupId>com.apress.gswmbook</groupId> <artifactId>gswm-web</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>war</packaging> <name>gswm-web Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <finalName>gswm-web</finalName> </build> </project> 

Sekarang seluruh infrastruktur sudah terpasang, Anda dapat merakit proyek berikutnya. Jalankan saja perintah paket mvn dari folder gswm-project , seperti yang ditunjukkan pada Listing 6-7 .

Listing 6-7. Perintah paket Maven diluncurkan di direktori proyek induk

 C:\apress\gswm-book\chapter6\gswm-parent>mvn package [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Reactor Build Order: [INFO] [INFO] gswm-parent [INFO] gswm-web Maven Webapp [INFO] gswm-service [INFO] gswm-repository [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] gswm-parent ....................................... SUCCESS [0.001s] [INFO] gswm-web Maven Webapp ............................. SUCCESS [1.033s] [INFO] gswm-service ...................................... SUCCESS [0.552s] [INFO] gswm-repository ................................... SUCCESS [0.261s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.949s [INFO] Finished at: Mon Oct 13 23:09:21 MDT 2014 [INFO] Final Memory: 6M/15M [INFO] ------------------------------------------------------------------------ 

Membuat Pola Dasar


Maven menyediakan beberapa cara untuk membuat pola dasar baru. Di sini kita akan menggunakan proyek yang sudah ada untuk ini.

Mari kita mulai dengan membuat proyek prototipe yang akan digunakan sebagai dasar untuk menghasilkan pola dasar. Proyek ini akan kompatibel dengan Servlet 3.0 dan berisi Servlet Status yang mengembalikan kode status HTTP 200 ("OK" - permintaan yang berhasil). Alih-alih membuat proyek web dari awal, salin proyek web-gswm yang dibuat sebelumnya dan buat prototipe web- gswm di folder C: \ apress \ gswm-book \ chapter6 . Buat perubahan berikut untuk proyek yang baru saja Anda salin:

1. Hapus semua sumber daya lainnya, seperti file khusus untuk Integrated Development Environment (IDE) ( .project , .classpath , dll.) Yang tidak ingin Anda sertakan dalam arketipe.

2. Ganti konten file web.xml dari folder webapp / WEB-INF . Ini akan mengonfigurasi aplikasi web untuk menggunakan Servlet 3.0 :

 <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>Archetype Created Web Application</display-name> </web-app> 

3. Tambahkan ketergantungan Servlet 3.0 ke file pom.xml . Konten pom.xml yang diperbarui ditunjukkan pada Listing 6-8 .

Listing 6-8. File Pom.xml dengan Ketergantungan Servlet

 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.apress.gswmbook</groupId> <artifactId>gswm-web</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>gswm-web Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.0.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <finalName>gswm-web</finalName> <plugins> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> </plugin> </plugins> </build> </project> 

4. Sejak kita akan mengembangkan proyek web di Java, lalu membuat folder bernama java di direktori src / main . Demikian pula, buat folder test / java dan test / resources di direktori src .

5. Buat file AppStatusServlet.java milik paket com.apress.gswmbook.web.servlet di direktori src / main / java . Paket com.apress.gswmbook.web.servlet dikonversi ke struktur folder com \ apress \ gswmbook \ web \ servlet . Kode sumber untuk file AppStatusServelet.java ditunjukkan pada Listing 6-9 .

Listing 6-9. Kode Sumber untuk Kelas Java AppStatusServlet

 package com.apress.gswmbook.web.servlet; import javax.servlet.annotation.WebServlet; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; @WebServlet("/status") public class AppStatusServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { PrintWriter writer = response.getWriter(); writer.println("OK"); response.setStatus(response.SC_OK); } } 

Desain prototipe dalam struktur akan menjadi perjalanan ke yang digambarkan pada Gambar 6-5 .

Fig. 6-5. Proyek Prototipe Dihasilkan



Menggunakan baris perintah, buka folder gswm-web-prototype proyek dari menjalankan perintah berikut:

 mvn archetype:create-from-project 

Di akhir perintah, Anda akan melihat pesan Pola Dasar yang dibuat di target / generate-sources / pola dasar . Pola dasar yang dihasilkan terletak di folder gswm-web-prototype / target / generate-sources / archetype .

Langkah selanjutnya adalah mentransfer artefak yang baru dibuat ke folder gswm-web-archetype yang terpisah untuk mengkonfigurasinya sebelum diterbitkan. Untuk melakukan ini, ikuti langkah-langkah ini:

1. Buat folder gswm-web-archetype di direktori C: \ apress \ gswm-book \ chapter6 .

2. Salin subdirektori dan file dari folder C: \ apress \ gswm-book \ bab6 \ gswm-web-prototype \ target \ generate-sources \ archetype ke folder gswm-web-archetype .

3. Hapus subdirektori target dari folder C: \ apress \ gswm-book \ chapter6 \ gswm-web-archetype .

Struktur folder untuk gswm-web-archetype harus serupa dengan yang ditunjukkan pada Gambar 6-6 .

Fig. 6-6. Struktur Proyek Pola Dasar Web



Mari kita mulai proses modifikasi dengan file pom.xml yang terletak di folder gswm-web-archetype \ src \ main \ resources \ archetype-resources . Ubah finalName di pom.xml dari gswm-web ke $ {artifactId}. Selama proses pembuatan proyek, Maven akan mengganti ekspresi $ {artifactId} dengan nilai yang diberikan oleh pengguna.

Ketika sebuah proyek dibuat dari arketipe, Maven meminta pengguna untuk nama paket. Maven membuat struktur folder yang sesuai dengan paket yang terletak di direktori src / main / java dari proyek yang dibuat. Kemudian Maven memindahkan semua konten dari folder pola dasar-sumber daya / src / main / java ke dalam paket ini. Karena Jika Anda ingin AppStatusServlet berada di subpackage web.servlet , buat folder web / servlet dan pindahkan AppStatusServlet ke sana. Lokasi baru AppStatusServlet.java ditunjukkan pada Gambar 6-7 .

Gambar 6-7. AppStatusServlet dalam paket web.servlet



Buka AppStatusServlet.java dan ubah nama paket dari paket $ {package}; pada paket $ {package} .web.servlet;
Langkah terakhir dalam membuat arketipe adalah dengan mengeksekusi perintah berikut dari baris perintah, yang terletak di folder gswm-web-arketipe:

 mvn clean install 

Menggunakan arketipe


Setelah arketipe telah diinstal, cara termudah untuk membuat proyek dari itu adalah ke, dalam folder C: \ apress \ gswm-book \ chapter6 , jalankan perintah berikut:
 mvn archetype:generate -DarchetypeCatalog=local 


Menanggapi pertanyaan Maven, masukkan nilai yang ditunjukkan pada Listing 6-10 , dan Anda akan melihat proyek yang dibuat.

Listing 6-10. Membuat proyek baru menggunakan pola dasar

 C:\apress\gswm-book\chapter6>mvn archetype:generate -DarchetypeCatalog=local [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building Maven Stub Project (No POM) 1 [INFO] ------------------------------------------------------------------------ [INFO] Generating project in Interactive mode [INFO] No archetype defined. Using maven-archetype-quickstart (org.apache. maven.archetypes:maven-archetype-quickstart:1.0) Choose archetype:1: local -> com.apress.gswmbook:gswm-web-archetype (gswm-web-archetype) Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): : 1 Define value for property 'groupId': : com.apress.gswmbook Define value for property 'artifactId': : test-project Define value for property 'version': 1.0-SNAPSHOT: : Define value for property 'package': com.apress.gswmbook: : Confirm properties configuration: groupId: com.apress.gswmbook artifactId: test-project version: 1.0-SNAPSHOT package: com.apress.gswmbook Y: : ------------------------------------------------------------------------------ project [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1:27.635s [INFO] Finished at: Mon Oct 13 23:36:01 MDT 2014 [INFO] Final Memory: 9M/22M [INFO] ------------------------------------------------------------------------ 

Karena file pom.xml untuk proyek-tes sudah berisi plugin Tomcat , kemudian jalankan mvn tomcat7: jalankan perintah di folder C: \ apress \ gswmbook \ bab6 \ test-project untuk memulai proyek . Buka browser dan pergi ke localhost : 8080 / test-project / status . Anda akan melihat tulisan OK , seperti yang ditunjukkan pada Gambar 6-8 .

Gambar 6-8. Halaman yang dihasilkan oleh proyek yang dihasilkan



Ringkasan


Arketipe Maven adalah bertopik proyek yang memungkinkan Anda dengan cepat meluncurkan proyek baru. Dalam bab ini, arketipe bawaan digunakan untuk menghasilkan proyek Maven yang kompleks, seperti proyek web atau proyek multi-modul. Anda juga belajar cara membuat dan menggunakan arketipe khusus.

Di bab selanjutnya, Anda akan mempelajari dasar-dasar pembuatan situs, dokumentasi, dan pelaporan menggunakan Maven.

Source: https://habr.com/ru/post/id421323/


All Articles