Java web入門筆記——第五章
五、Maven
為什麼要學習這個技術?
-
在Java Web開發中,需要使用大量的jar包,我們手動去匯入;
-
如何能夠讓一個東西自動幫我們匯入和配置這個jar包;
由此,Maven誕生了!
5.1 Maven專案架構管理工具
我們目前用來就是方便匯入jar包的!
Maven的核心思想:約定大於配置
-
有約束,不要去違反
Maven會規定好該如何去編寫我們的java程式碼,必須要按照這個規範來
5.2 下載安裝Maven
下載完成後解壓即可
5.3 配置環境變數
在我們的系統環境變數中
配置如下配置:
-
M2_HOMEmaven目錄下的bin目錄
-
MAVEN_HOME maven的目錄
-
在系統的path中配置 %MAVEN_HOME%\bin
測試Maven是否安裝成功,保證必須配置完畢!
5.4 阿里雲映象
-
映象:mirrors
-
作用:加速下載
-
-
國內建議使用阿里雲的映象
<mirror> <id>nexus-aliyun</id> <mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror>
5.5 本地倉庫
在本地的倉庫,遠端倉庫;
建立一個本地倉庫:
<localRepository>D:\Program Files\Apache Software Foundation\apache-maven-3.8.2\maven-repo</localRepository>
5.6 在IDEA中使用Maven
-
啟動IDEA
-
建立一個Maven專案
-
等待專案初始化完畢
-
觀察maven倉庫中多了什麼東西
-
IDEA中的Maven設定
IDEA專案建立成功後,看一眼Maven的配置
自動匯入原始碼可選但沒必要,選中自動匯入文件可能導致記憶體佔用有點大
-
到這裡,Maven在IDEA中的配置和使用就OK了!
5.7 建立一個普通的Maven專案
這個是隻有在webapp下才會有!
5.8 標記資料夾功能
-
直接右擊目標資料夾對資料夾進行標記修改
-
利用Project Structure對專案內的資料夾進行
5.9 在IDEA中配置Tomcat
解決警告問題
為什麼會有這個問題:
-
必須要的配置:我們訪問一個網站,需要指定一個資料夾的名字
5.10 pom檔案
pom.xml是Maven的核心配置檔案
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <!--Maven版本和標頭檔案-->
4 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
6 <modelVersion>4.0.0</modelVersion>
7
8 <!--這裡就是剛才配置的GAV-->
9 <groupId>org.example</groupId>
10 <artifactId>javaweb-01-maven</artifactId>
11 <version>1.0-SNAPSHOT</version>
12 <!--Package:專案打包的方式
13 jar:Java應用
14 war:Javaweb應用
15 -->
16 <packaging>war</packaging>
17
18 <!--配置-->
19 <properties>
20 <!--專案的預設構建編碼-->
21 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
22 <!--編碼版本-->
23 <maven.compiler.source>1.7</maven.compiler.source>
24 <maven.compiler.target>1.7</maven.compiler.target>
25 </properties>
26
27 <!--專案依賴-->
28 <dependencies>
29 <!--具體依賴的jar包配置檔案-->
30 <dependency>
31 <groupId>junit</groupId>
32 <artifactId>junit</artifactId>
33 <version>4.11</version>
34 <scope>test</scope>
35 </dependency>
36 </dependencies>
37
38 <!--專案構建使用的東西-->
39 <build>
40 <finalName>javaweb-01-maven</finalName>
41 <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
42 <plugins>
43 <plugin>
44 <artifactId>maven-clean-plugin</artifactId>
45 <version>3.1.0</version>
46 </plugin>
47 <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
48 <plugin>
49 <artifactId>maven-resources-plugin</artifactId>
50 <version>3.0.2</version>
51 </plugin>
52 <plugin>
53 <artifactId>maven-compiler-plugin</artifactId>
54 <version>3.8.0</version>
55 </plugin>
56 <plugin>
57 <artifactId>maven-surefire-plugin</artifactId>
58 <version>2.22.1</version>
59 </plugin>
60 <plugin>
61 <artifactId>maven-war-plugin</artifactId>
62 <version>3.2.2</version>
63 </plugin>
64 <plugin>
65 <artifactId>maven-install-plugin</artifactId>
66 <version>2.5.2</version>
67 </plugin>
68 <plugin>
69 <artifactId>maven-deploy-plugin</artifactId>
70 <version>2.8.2</version>
71 </plugin>
72 </plugins>
73 </pluginManagement>
74 </build>
75 </project>
Maven自動匯入jar包:
-
先從Maven倉庫中找到要匯入的包對應的Maven語句
-
複製後貼上到專案中,Maven就會自動導包
Maven由於它的約定大於配置,我們之後可以能遇到我們寫的配置檔案,無法被匯出或者生效的問題,解決方案:
1 <!--在build中配置resources,來防止我們資源匯出失敗的問題--> 2 <build> 3 <resources> 4 <resource> 5 <directory>src/main/resources</directory> 6 <excludes> 7 <exclude>**/*.properties</exclude> 8 <exclude>**/*.xml</exclude> 9 </excludes> 10 <filtering>false</filtering> 11 </resource> 12 <resource> 13 <directory>src/main/java</directory> 14 <includes> 15 <include>**/*.properties</include> 16 <include>**/*.xml</include> 17 </includes> 18 <filtering>false</filtering> 19 </resource> 20 </resources> 21 </build>
5.11 IDEA操作
可用右上角的目錄樹按鈕檢視Maven中jar包的聯絡關係圖