1. 程式人生 > 其它 >Java web入門筆記——第五章

Java web入門筆記——第五章

五、Maven

為什麼要學習這個技術?

  1. 在Java Web開發中,需要使用大量的jar包,我們手動去匯入;

  2. 如何能夠讓一個東西自動幫我們匯入和配置這個jar包;

由此,Maven誕生了!

5.1 Maven專案架構管理工具

我們目前用來就是方便匯入jar包的!

Maven的核心思想:約定大於配置

  • 有約束,不要去違反

Maven會規定好該如何去編寫我們的java程式碼,必須要按照這個規範來

5.2 下載安裝Maven

官網:http://maven.apache.org/

下載完成後解壓即可

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

  1. 啟動IDEA

  2. 建立一個Maven專案

        

  

  

  

  1. 等待專案初始化完畢

  

  1. 觀察maven倉庫中多了什麼東西

  

  1. IDEA中的Maven設定

  IDEA專案建立成功後,看一眼Maven的配置

  

  

  自動匯入原始碼可選但沒必要,選中自動匯入文件可能導致記憶體佔用有點大

  1. 到這裡,Maven在IDEA中的配置和使用就OK了!

5.7 建立一個普通的Maven專案

這個是隻有在webapp下才會有!

5.8 標記資料夾功能

  1. 直接右擊目標資料夾對資料夾進行標記修改

  

  1. 利用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包:

  1. 先從Maven倉庫中找到要匯入的包對應的Maven語句

  1. 複製後貼上到專案中,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包的聯絡關係圖