視頻教程:Maven保姆級(jí)教程
Maven入門(mén)教程(一):安裝Maven環(huán)境
Maven入門(mén)教程(二):idea/Eclipse使用Maven
Maven入門(mén)教程(三):Maven語(yǔ)法
Maven入門(mén)教程(四):Nexus私服
Maven入門(mén)教程(五):自定義腳手架
6.Maven基本用法
6.1 導(dǎo)入jar包
pom.xml是maven的核心配置文件,在pom.xml中可以定義工程的依賴(lài)關(guān)系,和引用jar包的信息。
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
這里引用了junit的jar包,版本是4.12
maven 項(xiàng)目不同的階段引入到classpath中的依賴(lài)是不同的,例如,編譯時(shí),maven 會(huì)將與編譯相關(guān)的依賴(lài)引入classpath中,測(cè)試時(shí),maven會(huì)將測(cè)試相關(guān)的的依賴(lài)引入到classpath中,運(yùn)行時(shí),maven會(huì)將與運(yùn)行相關(guān)的依賴(lài)引入classpath中。
依賴(lài)范圍更為通俗的理解,其實(shí)就是給依賴(lài)包打標(biāo)記,例如將 A 依賴(lài)包標(biāo)記為“compile”,Maven 就知道 A 依賴(lài)包在項(xiàng)目編譯的時(shí)候要被引入到 classpath 中。
可選配置有
compile:編譯
test:測(cè)試,只對(duì)于測(cè)試classpath有效
provided:編譯和測(cè)試classpath有效,但在運(yùn)行時(shí)無(wú)效
runtime:運(yùn)行時(shí)
system:本地,不從庫(kù)里找
import:功能為將目標(biāo)pom.xml 文件中元素
<dependencyManagement>
的配置導(dǎo)入合并到當(dāng)前 pom.xml 文件的元素<dependencyManagement>
中若不指定則默認(rèn) compile。
6.2 配置插件
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/</path>
<port>8080</port>
</configuration>
</plugin>
</plugins>
</build>
pligins用于定義插件,此處引用了tomcat的插件。path是訪(fǎng)問(wèn)路徑,如果我們同時(shí)運(yùn)行多個(gè)項(xiàng)目,訪(fǎng)問(wèn)路徑都是根路徑,可以通過(guò)修改port端口號(hào)來(lái)訪(fǎng)問(wèn)項(xiàng)目。
6.3 maven命令
6.3.1 idea
命令clean tomcat7:run
配置成功后可以在工具欄里看到剛才配置的命令,點(diǎn)擊綠色的三角
在瀏覽器里可以看到:
6.3.2 Eclipse
輸入clean tomcat7:run
6.4 查看jar包
6.4.1 idea
通常,在pom.xml中加入
<dependency>
后maven會(huì)自動(dòng)下載jar包在項(xiàng)目的External Libraries中可以看到maven下載的jar:
如果在pom.xml中加入
<dependency>
后,在左側(cè)看不到j(luò)ar包,可以右鍵點(diǎn)擊pom.xml,選擇Maven->Reimport
或者在IDEA右側(cè)點(diǎn)擊Maven Project:
jar包沒(méi)有正確引入的時(shí)候,pom.xml中會(huì)出現(xiàn)錯(cuò)誤提示:
未正確引用的依賴(lài),顏色是不一樣的。具體提示的顏色與IntelliJ的主題有關(guān)。
6.4.2 Eclipse
6.5 排除jar沖突
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<!-- 排除沖突jar包 -->
<exclusions>
<exclusion>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
</exclusion>
</exclusions>
</dependency>
6.6 引用本地jar
<dependency>
<groupId>com.test</groupId> <!--自定義-->
<artifactId>xxxx</artifactId> <!--自定義-->
<version>xxxx-SNAPSHOT</version> <!--自定義-->
<scope>system</scope> <!--需要顯式提供依賴(lài)的jar以后,Maven就不會(huì)在Repository中查找它-->
<systemPath>${project.basedir}/lib/xxx.jar</systemPath> <!--項(xiàng)目根目錄下的lib文件夾下-->
</dependency>
7.Maven繼承
7.1 pom工程
pom工程中只有一個(gè)pom.xml文件,不包含java和resource目錄,它只用來(lái)保存一些依賴(lài)信息。
在pom.xml中添加依賴(lài)信息信息,如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>
<!--繼承自該項(xiàng)目的所有子項(xiàng)目的默認(rèn)依賴(lài)信息。這部分的依賴(lài)信息不會(huì)被立即解析,而是當(dāng)子項(xiàng)目聲明一個(gè)依賴(lài)(必須描述group ID和artifact ID信息),如果group ID和artifact ID以外的一些信息沒(méi)有描述,則通過(guò)group ID和artifact ID匹配到這里的依賴(lài),并使用這里的依賴(lài)信息。-->
<dependencyManagement>
<dependencies>
<!--用于junit測(cè)試 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
</dependency>
<!-- mysql驅(qū)動(dòng)包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<!--產(chǎn)生的構(gòu)件的文件名,默認(rèn)值是${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對(duì)象的配置-->
<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>
<!--子項(xiàng)目可以引用的默認(rèn)插件信息。該插件配置項(xiàng)直到被引用時(shí)才會(huì)被解析或綁定到生命周期。給定插件的任何本地配置都會(huì)覆蓋這里的配置-->
<pluginManagement>
<plugins>
<!-- 配置Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
7.2 創(chuàng)建子工程
在子工程中添加父工程里定義過(guò)的依賴(lài):
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
</dependencies>
可以不用寫(xiě)版本號(hào)
<version>
了,它會(huì)自動(dòng)繼承父工程里定義的版本。
8.打包
clean 清除編譯結(jié)果
package 打包文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-690508.html
install 安裝到本地倉(cāng)庫(kù)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-690508.html
到了這里,關(guān)于Maven入門(mén)教程(三):Maven語(yǔ)法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!