js實現簡易購物車功能
Apache Maven 的作用
Maven 本質是一個專案管理工具,將專案開發和管理過程抽象成一個 POM(Project Object Module 專案物件模型),中間畫框部分即 Maven:
Maven 檔案一覽
bin 資料夾
maven 的所有可執行指令,裡面的 mvn
是核心檔案,
boot 資料夾
一般 boot 翻譯為啟動,裡面的 plexus-classworlds-2.6.0.jar 檔案是類管理器
conf 資料夾
配置資料夾,裡面的 logging 是日誌,settings.xml 是核心檔案
lib 資料夾
包含 maven 執行所依賴的 jar 包
LICENSE 檔案
協議
NOTICE 檔案
注意事項
README.txt 檔案
Apache Maven 的相關說明
Maven 基礎知識
一、Maven 的座標
作用:用於描述倉庫中資源的位置
描述:由 groupld、artifactld、version 組成
groupld:定義當前 maven 專案隸屬組織名稱(通常是域名反寫,如:com.xiaotuan)
artifactld:定義當前 maven 專案名稱(通常是模組名稱,如:CRM、SMS)
version:定義當前專案版本號
packaging:定義改專案的打包方式
舉例:寫入 maven 中的程式碼 <!-- https://mvnrepository.com/artifact/junit/junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</version> <scope>test</scope> </dependency>
二、去中央倉庫找 jar 包
三、常用 mvn 命令
編譯
mvn compile
清除
mvn clear
測試
mvn test
打包
mvn target
安裝到本地倉庫
mvn install
Maven 專案一覽
Maven-JAVA / Maven-WEB 專案一覽:
PS:一般一個工程一個 pom.xml,但如果分模組的話,每個模組則單獨有一個!
IDEA 操作一覽
新建 Maven-JAVA / Maven-WEB 專案
檔案 > 專案結構 > 模組 > ➕ > 新建模組 > Maven > 從原型建立[√] > maven-archetype-quick / maven-archetype-webapp > 如下:
父項 | None |
---|---|
位置 | 空資料夾 |
Groupld | com.xiaotuan |
Artifactld | 通常與名稱一致 |
archetypeCatalog | internal |
然後直接點選確定,讓 maven 自主執行一段時間,再返回 專案結構 繼續配置:
最後專案結構如圖所示:
可以在程式碼右側進行 maven 的操作:
tomcat 啟動 web 工程
在官方網站:https://mvnrepository.com 下載 tomact 外掛
這裡我們選擇比較舊的穩定版 Apache Tomcat Maven Plugin :: Tomcat 7.x » 2.1
在新增配置中新增 maven 執行命令 tomcat7:run
,名稱為:啟動伺服器
然後點選執行,我們就可以訪問本地 web 伺服器(localhost)啦~
這裡附上我 web 工程的 pom.xml 檔案:
<?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">
<!-- 指定 pom 的模型版本 -->
<modelVersion>4.0.0</modelVersion>
<!-- 組織ID -->
<groupId>com.xiaotuan</groupId>
<!-- 專案ID -->
<artifactId>TEST_WEB</artifactId>
<!-- 版本號:完成版 release, 開發版 snapshot -->
<version>1.0-SNAPSHOT</version>
<!-- 打包方式:web 工程打包為 war, java 工程打包為 jar -->
<packaging>war</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<!-- 設定當前工程的所有依賴 -->
<dependencies>
<!-- 具體的依賴 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
</dependencies>
<!-- 構建 -->
<build>
<!-- 設定外掛 -->
<plugins>
<!-- 具體外掛配置 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<port>80</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
</project>
依賴管理
依賴傳遞
直接依賴:相差 1 度的為直接依賴
間接依賴:相差 2 度或以上的為間接依賴
依賴衝突
路徑優先:度數小的覆蓋度數大的(如圖所示)
宣告優先:同層配置,前面的覆蓋後面的
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
<!-- 下面的依賴中包含上面的依賴 -->
<dependency>
<groupId>com.xiaotuan</groupId>
<artifactId>TEST_WEB</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
特殊優先:同級配置,後面的覆蓋前面的
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
可選依賴
新增一個標籤 optional,並設定為 true
效果:別人用你的依賴時,optional 為 true 的依賴被隱藏,別人無法使用
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<optional>true</optional>
</dependency>
排除依賴
新增一個標籤 exclusions,並在其中新增所要排除的依賴 exclusion
效果:你不想用別人的某個依賴,在 exclusions 中新增 不想用的依賴 exclusion 即可
<dependency>
<groupId>com.xiaotuan</groupId>
<artifactId>TEST_WEB</artifactId>
<version>1.0-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupld>log4j</groupld>
<artifactld>log4j</artifactld>
</exclusion>
</exclusions>
</dependency>
依賴範圍
新增一個標籤 scope,並設定為依賴的範圍
效果:僅在依賴的範圍中,依賴才生效
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
依賴範圍的傳遞性,如圖所示:
專案構建生命週期
一般分為三套:
-
clean:清理工作
-
default:核心工作,例如編譯,測試,打包,部署等
-
site:產生報告,釋出站點等
clean
default
site
外掛
外掛與生命週期內的階段是繫結的,所需外掛也可在官網檢視:https://maven.apache.org/plugins/index.html
Maven 生命週期的每一個階段的具體實現都是由 Maven 外掛實現的
下面以 source 外掛為例,作用是:執行到生命週期中的 generate-test-resources 時,生成 jar 包(生成名稱:TEST_JAVA-1.0-SNAPSHOT-sources.jar)
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<goals>
<goal>jar</goal>
</goals>
<phase>generate-test-resources</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
Maven 高階用法
我參考的視訊為黑馬程式設計師,但我懶得再學下去了,等需要了再學吧~
喜歡划水摸魚的廢人