Maven項目管理工具的安裝及配置(IDEA)

一、介紹下載

Maven項目對象模型(POM),可以通過一小段描述信息來管理項目的構建,報告和文
檔的軟件項目管理工具。
在項目開發中Maven可以對jar包和對工程之間的依賴關係進行管理,集成tomcat插
件,maven項目可以自動發佈到tomcat下。
maven倉庫中存儲jar包,可以一次下載,所有項目通用。

Maven下載:
下載地址:https://maven.apache.org/download.cgi

下載後只需解壓,無需安裝
注意:需要解壓到不帶中文的文件夾路徑下

配置本機環境變量
新建環境變量名:JAVA_HOME
將解壓文件路徑添加進去:如:D:\java\jdk1.8.0_231\
將環境變量添加進path環境變量中:%MAVEN_HOME%\bin;

測試環境變量
cdm運行mvn –version命令
能看到相關版本信息表示添加成功。

Maven兩個主要配置文件:
settings.xml是maven的全局配置文件。
pom.xml文件是所在項目的局部配置

二、修改配置文件

編輯配置文件:conf文件夾裏的settings.xml

1、指定本地倉庫的路徑
指定本地倉庫的路徑,即下載的jar包存放位置

<localRepository>D:\java\repository</localRepository>

2、配置JDK版本
使用Maven創建的java項目,需要可以在配置文件中設置默認使用的jdk版本。
找到配置jdk的節點<profiles>裏配置。
注意不同版本的maven中配置不同,找到原來的節點,在原來的基礎上修改。

配置代碼:

   <profile>
        <id>jdk18</id>
        <activation>
            <activeByDefault>true</activeByDefault>
            <jdk>1.8</jdk>
        </activation>
        <properties>
            <maven.compiler.source>1.8</maven.compiler.source>
            <maven.compiler.target>1.8</maven.compiler.target>
            <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
        </properties>
    </profile>

3、配置鏡像
Maven的中央倉庫是在國外的,如果網絡有限制,會導致jar包下載的很慢或者無法下載。
找到配置節點<mirrors>裏配置

阿里雲鏡像

    <mirror>
        <id>alimaven</id>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <!--用來表示該mirror是關聯的哪一個倉庫,其值爲其關聯倉庫的id-->
        <mirrorOf>central</mirrorOf>
    </mirror>

華爲雲鏡像

<mirror>
    <id>huaweicloud</id>
    <mirrorOf>*</mirrorOf>
    <url>https://mirrors.huaweicloud.com/repository/maven/</url>
</mirror>

網易鏡像

    <mirror>
        <id>nexus-163</id>
        <mirrorOf>*</mirrorOf>
        <name>Nexus 163</name>
        <url>http://mirrors.163.com/maven/repository/maven-public/</url>
    </mirror>

騰訊鏡像

    <mirror>
        <id>nexus-tencentyun</id>
        <mirrorOf>*</mirrorOf>
        <name>Nexus tencentyun</name>
        <url>http://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
    </mirror>

三、IDEA配置

1、idea中配置好文件路徑
在這裏插入圖片描述
在這裏插入圖片描述
2、創建maven項目
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
如果創建成功,會在IntelliJ中看到完整的目錄結構。
如果創建失敗,可以在控制檯中查看EventLog
有些資源Maven需要聯網下載,如果download失敗,項目可能創建失敗。
如果創建同名的工程也會報錯,此時需要刪除工程目錄下對應的文件夾,並刪除回收站中對應的文件。

3、創建目錄
右鍵單擊main->New->Directory
在這裏插入圖片描述

右鍵java文件夾->Mark Directory As ->Sources Root將文件夾更改成源碼文件

在這裏插入圖片描述
右鍵resources->Mark Directory As –>Resources Root
java文件夾下用於存放package,相當於eclipse普通工程中的src目錄。
resources中用於存放配置文件和屬性文件。
還可以在src下創建test文件夾,用於junit測試。test下同樣創建java和resources

在這裏插入圖片描述
也可以右鍵項目-選擇Open Module Settings打開項目配置頁面更改
在這裏插入圖片描述
4、maven配置文件
pom.xml是maven的核心配置文件,在pom.xml中可以定義工程的依賴關係,和引用jar包的信息。

示例:引用了junit的jar包,版本是4.12

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <!--限制Dependency的作用範圍-->
        <scope>test</scope>
    </dependency>

5、maven配置插件

    <build>
        <finalName>test001</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <configuration>
                    <path>/</path>
                    <port>8080</port>
                </configuration>
            </plugin>
        </plugins>
    </build>

pligins用於定義插件,此處引用了tomcat的插件。path是訪問路徑,如果我們同時運
行多個項目,訪問路徑都是根路徑,可以通過修改port端口號來訪問項目。

6、測試tomcat
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
命令clean tomcat7:run
配置成功後可以在工具欄裏看到剛纔配置的命令,點擊綠色的三角
在這裏插入圖片描述
在瀏覽器中看到信息表示tomcat配置成功

7、查看jar包
通常,在pom.xml中加入後maven會自動下載jar包
在項目的External Libraries中可以看到maven下載的jar:
在這裏插入圖片描述
如果在pom.xml中加入後,在左側看不到jar包,可以右鍵點擊pom.xml,選擇Maven->Reimport
在這裏插入圖片描述
或者在IDEA右側點擊Maven Project:
在這裏插入圖片描述
jar包沒有正確引入的時候,pom.xml中會出現錯誤提示:
在這裏插入圖片描述
未正確引用的依賴,顏色是不一樣的。具體提示的顏色與IntelliJ的主題有關。

8、排除jar衝突

<dependency>
	<groupId>junit</groupId>
	<artifactId>junit</artifactId>
	<!-- 排除衝突jar包 -->
	<exclusions>
		<exclusion>
		<groupId>org.hamcrest</groupId>
		<artifactId>hamcrest-core</artifactId>
		</exclusion>
	</exclusions>
</dependency>

Maven繼承

1、pom工程

pom工程中只有一個pom.xml文件,不包含java和resource目錄,它只用來保存一些依賴信息。
在pom.xml中添加依賴信息信息,如junit、mysql等,也可以定義插件信息:

<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">
    <modelVersion>4.0.0</modelVersion>
    
    <groupId>com.maven.test</groupId>
    <artifactId>test-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>
    <!-- 自定義屬性 -->
    <properties>
        <junit.version>4.12</junit.version>
        <mysql.version>5.1.32</mysql.version>
    </properties>
    <!--繼承自該項目的所有子項目的默認依賴信息。這部分的依賴信息不會被立即解析,
    而是當子項目聲明一個依賴(必須描述group ID和artifact ID信息),如果group ID和
    artifact ID以外的一些信息沒有描述,則通過group ID和artifact ID匹配到這裏的依
    賴,並使用這裏的依賴信息。-->
    <dependencyManagement>
        <dependencies>
            <!--用於junit測試 -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
            </dependency>
            <!-- mysql驅動包 -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <build>
        <!--產生的構件的文件名,默認值是${artifactId}-${version}。-->
        <finalName>${project.artifactId}</finalName>
        <!--使用的插件列表 。-->
        <plugins>
            <!-- 資源文件拷貝插件 -->
            <plugin> <!--plugin元素包含描述插件所需要的信息。-->
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.7</version>
                <!--作爲DOM對象的配置-->
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <!-- java編譯插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
        <!--子項目可以引用的默認插件信息。該插件配置項直到被引用時纔會被解析或
        綁定到生命週期。給定插件的任何本地配置都會覆蓋這裏的配置-->
        <pluginManagement>
            <plugins>
                <!-- 配置Tomcat插件 -->
                <plugin>
                    <groupId>org.apache.tomcat.maven</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <version>2.2</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>

2、創建子工程
在子工程中添加父工程裏定義過的依賴:

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
    </dependencies>

可以不用寫版本號了,它會自動繼承父工程裏定義的版本。

打包
在這裏插入圖片描述
clean 清除編譯結果
package 打包
install 安裝到本地倉庫

Maven常用setting標籤含義:

setting頂級元素
localRepository
作用:表示構建系統本地倉庫的路徑。
其默認值:~/.m2/repository。

interactiveMode
作用:表示maven是否需要和用戶交互以獲得輸入。
如果maven需要和用戶交互以獲得輸入,則設置成true,反之則應爲false。默認爲true。

usePluginRegistry
作用:maven是否需要使用plugin-registry.xml文件來管理插件版本。
如果需要讓maven使用文件~/.m2/plugin-registry.xml來管理插件版本,則設爲true。默認爲false

offline
作用:表示maven是否需要在離線模式下運行。
如果構建系統需要在離線模式下運行,則爲true,默認爲false。
當由於網絡設置原因或者安全因素,構建服務器不能連接遠程倉庫的時候,該配置就十分有用。

pluginGroups
作用:當插件的組織id(groupId)沒有顯式提供時,供搜尋插件組織Id(groupId)的列表。
該元素包含一個pluginGroup元素列表,每個子元素包含了一個組織Id(groupId)。
當我們使用某個插件,並且沒有在命令行爲其提供組織Id(groupId)的時候,Maven就會使用該列表。默認情況下該列表包含了org.apache.maven.plugins和org.codehaus.mojo

servers
作用:一般,倉庫的下載和部署是在pom.xml文件中的repositories和distributionManagement元素中定義的。然而,一般類似用戶名、密碼(有些倉庫訪問是需要安全認證的)等信息不應該在pom.xml文件中配置,這些信息可以配置在settings.xml中。

mirrors
作用:爲倉庫列表配置的下載鏡像列表。

proxies
作用:用來配置不同的代理。

profiles
作用:根據環境參數來調整構建配置的列表。
settings.xml中的profile元素是pom.xml中profile元素的裁剪版本。
它包含了id、activation、repositories、pluginRepositories和 properties元素。這裏的profile元素只包含這五個子元素是因爲這裏只關心構建系統這個整體(這正是settings.xml文件的角色定位),而非單獨的項目對象模型設置。如果一個settings.xml中的profile被激活,它的值會覆蓋任何其它定義在pom.xml中帶有相同id的profile。

activeProfiles
作用:自動觸發profile的條件邏輯。
如pom.xml中的profile一樣,profile的作用在於它能夠在某些特定的環境中自動使用某些特定的值;這些環境通過activation元素指定。
activation元素並不是激活profile的唯一方式。settings.xml文件中的activeProfile元素可以包含profile的id。profile也可以通過在命令行,使用-P標記和逗號分隔的列表來顯式的激活(如,-P test)

Maven常用pom標籤含義:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章