1. 程式人生 > 程式設計 >js實現簡易購物車功能

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 包

網站:mvnrepository.com

三、常用 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>

依賴範圍的傳遞性,如圖所示:

專案構建生命週期

一般分為三套:

  1. clean:清理工作

  2. default:核心工作,例如編譯,測試,打包,部署等

  3. 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 高階用法

我參考的視訊為黑馬程式設計師,但我懶得再學下去了,等需要了再學吧~

喜歡划水摸魚的廢人