Maven dikenali secara meluas sebagai alat automasi binaan yang berkuasa, tetapi ia lebih daripada itu. Ia merupakan alat pengurusan projek komprehensif yang memudahkan keseluruhan proses binaan, pengurusan pergantungan dan penjanaan dokumentasi. Dalam siaran ini, kami akan meneroka pelbagai aspek Maven dan memahami keupayaannya secara terperinci.
Ciri Utama Maven
1.Membina Generasi
2.Pengurusan Pergantungan
3.Dokumentasi
Apabila anda melaksanakan perintah seperti mvn build atau mvn deploy, Maven melihat ke dalam fail pom.xml, yang mengandungi semua konfigurasi dan bertindak sewajarnya. Mari kita mendalami struktur pom.xml dan kepentingannya.
Fail POM
```
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">
4.0.0
<!-- Basic project information --> <groupId>com.example</groupId> <artifactId>my-app</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <!-- Properties --> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <spring.version>5.2.8.RELEASE</spring.version> </properties> <!-- Dependencies --> <dependencies> <!-- Spring Core --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <!-- Spring Context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <!-- JUnit for testing --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies> <!-- Build configuration --> <build> <plugins> <!-- Compiler plugin --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>${maven.compiler.source}</source> <target>${maven.compiler.target}</target> </configuration> </plugin> <!-- Surefire plugin for running tests --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.2</version> </plugin> </plugins> </build> <!-- Repositories --> <repositories> <repository> <id>central</id> <url>https://repo.maven.apache.org/maven2</url> </repository> </repositories> <!-- Distribution management for deployment --> <distributionManagement> <repository> <id>releases</id> <url>http://repo.mycompany.com/releases</url> </repository> <snapshotRepository> <id>snapshots</id> <url>http://repo.mycompany.com/snapshots</url> </snapshotRepository> </distributionManagement>
Mari menyahkod fail POM ke:
**Fail pom.xml mengikut skema XML tertentu (ditakrifkan dalam xsi:schemaLocation:)yang memastikan ia mematuhi struktur yang betul, yang disahkan oleh Maven. Berikut ialah contoh:
<project 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">
Elemen Utama:
POM Ibu Bapa:
Setiap fail POM dalam Spring Boot mempunyai POM induk. Jika tiada induk ditentukan, POM super menjadi induk.
GroupId, ArtifactId dan Versi:
Elemen ini mengenal pasti secara unik projek di Maven Central.
<groupId>com.example</groupId> <artifactId>my-app</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging>
<properties> <java.version>1.8</java.version> </properties> -
<repositories> <repository> <id>central</id> <url>https://repo.maven.apache.org/maven2</url> </repository> </repositories>
Kebergantungan: Senaraikan kebergantungan projek.
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.3.4.RELEASE</version> </dependency> </dependencies>
Kitaran Hayat Maven Build
Maven mengikuti kitaran hayat binaan khusus yang terdiri daripada beberapa fasa:
Sahkan:
Mengesahkan struktur projek.
Kompilasi:
Menukar kod Java kepada kod bait (fail kelas) dan meletakkannya dalam folder sasaran/.
Ujian:
Menjalankan kes ujian yang terdapat dalam ujian/ direktori.
Pakej:
Menjana fail JAR/WAR daripada kod bait yang disusun dan menyimpannya dalam folder sasaran/.
Sahkan:
Menyemak integriti pakej.
Pasang:
Memasang pakej dalam repositori tempatan.
Kerahkan:
Memuat naik pakej ke repositori jauh.
Menyesuaikan Proses Binaan:
Maven menyediakan fleksibiliti untuk menambah matlamat tertentu dalam setiap fasa melalui elemen. Anda juga boleh mencipta dan menggunakan pemalam untuk memanjangkan kefungsian Maven.
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>
*Pasang dengan maven: *
Ia memasang fail jar yang kami buat dalam fasa penyusunan selepas melengkapkan ujian, pakej dan sahkan.
di sini ia mencipta folder m2 di mana semua kebergantungan disimpan. Kami boleh menukar lokasi folder ini daripada settings.xml di bawah
Menggunakan Maven
Konfigurasi penggunaan ditentukan dalam elemen.
<distributionManagement> <repository> <id>internal.repo</id> <url>http://repo.mycompany.com/maven2</url> </repository> </distributionManagement>
Petua: kami boleh menyediakan bukti kelayakan dalam settings.xml di dalam folder .m2/repository.
Kekal dikemas kini dengan Maven dan menguasai nuansanya boleh meningkatkan pengurusan projek dan membina kemahiran automasi dengan ketara. Ingat, Maven bukan sekadar alat binaan—ia adalah pusat arahan projek. Menyelam lebih dalam, terokai pemalam baharu dan teruskan percubaan. Semakin banyak kita terlibat dengan Maven, semakin kuat proses pembangunan kita. Teruskan menolak sempadan dan biarkan Maven mengendalikan yang lain—lagipun, ia seperti memiliki pisau Tentera Swiss untuk keperluan pengurusan projek anda!
Terima kasih banyak kerana membaca, akan menghargai maklum balas anda yang berharga.
Juga beritahu saya dalam ulasan jika anda menemui sebarang Pemalam yang hebat.
Jangan lupa like, share dan subcribe.
Atas ialah kandungan terperinci Menguasai Maven: Pengurusan Melangkaui Binaan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!