1.安裝配置
l 下載
http://maven.apache.org/download.cgi
l 安裝
解壓到指定軟件安裝目錄即可
l 目錄介紹
bin:存放執行腳本文件的地方
boot:存放一些擴展的地方
conf:maven的核心配置文件存放的路徑
lib:maven的依賴包
l 配置環境變量
1、配置JAVA_HOME和MAVEN_HOME
2.配置path
l 驗證
l 配置本地倉庫
1.在maven的安裝目錄中conf/ settings.xml文件,在這裏配置本地倉庫
指定本地倉庫位置(默認在 {user.dir}表示windows用戶目錄)
C:\develop\repository
2.指定阿里雲鏡像位置(中央倉庫默認不用配置,此處只是使用阿里雲鏡像替代中央倉庫,提高jar的下載速度)
<mirror>
<id>alimaven</id>
<name>aliyunmaven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
2.Eclipse關聯Maven
3.IDEA關聯Maven
4.使用Maven管理項目(重點)
l 目錄規範
使用maven創建的工程我們稱它爲maven工程,maven工程具有一定的目錄規範,如下:
src/main/java —— 存放項目的.java文件
src/main/resources —— 存放項目資源文件,如spring,hibernate配置文件
src/test/java —— 存放所有單元測試.java文件,如JUnit測試類
src/test/resources —— 測試資源文件
target —— 項目輸出位置,編譯後的class文件會輸出到此目錄
pom.xml ——maven項目核心配置文件
l 項目示例
下面是一個完整的使用Maven管理的JavaWeb項目的目錄結構
Project
|-src
| |-main
| | |-java —— 存放項目的.java文件
| | |-resources —— 存放項目資源文件,如spring, hibernate配置文件
|-webapp —— webapp目錄是web工程的主目錄
|-WEB-INF
|-web.xml
| |-test
| |-java ——存放所有測試.java文件,如JUnit測試類
| |-resources —— 測試資源文件
|-target —— 目標文件輸出位置例如.class、.jar、.war文件
|-pom.xml ——maven項目核心配置文件
Maven骨架:其實就是maven創建不同的項目結構
(1)普通Java項目
①創建項目
②編寫代碼
③編寫測試
l 添加Test依賴
可以通過http://mvnrepository.com/tags/maven網址搜索jar包的座標
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
配置maven的編譯級別
<!--編譯插件,可以配置編譯版本,因爲maven默認是按照1.5進行編譯的-->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>utf-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
測試用例(Use Case):針對一個功能或者一個功能點的測試邏輯
(2)JavaWeb項目
①創建項目
l 解決IntelliJ IDEA創建Maven項目速度慢問題
https://www.cnblogs.com/del88/p/6286887.html
增加屬性:archetypeCatalog=internal
或者
全局屬性
在maven的VM Options加上 -DarchetypeCatalog=internal 參數,如下:
②完善目錄
③添加依賴
<?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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.bigdata</groupId>
<artifactId>maven_02</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- Servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<!--只需編譯無需打包,tomcat自帶-->
<scope>provided</scope>
</dependency>
<!-- JSP -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<!--只需編譯無需打包,tomcat自帶-->
<scope>provided</scope>
</dependency>
<!-- JSTL -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<!--只是運行時依賴-->
<scope>runtime</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!--配置編譯級別-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<!--打包跳過單元測試-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<!-- Tomcat -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/${project.artifactId}</path>
<port>8080</port>
</configuration>
</plugin>
</plugins>
</build>
</project>
④編寫代碼
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().write(new Date().toString());
}
}
⑤部署運行
l 添加到外置Tomcat運行
l 使用Tomcat插件運行
或手動指定命令
5.常見Maven命令
(1)clean
clean是maven工程的清理命令,執行 clean會刪除整個target目錄及內容。
(2)compile
compile是maven工程的編譯命令,作用是將src/main/java下的文件編譯爲class文件輸出到target目錄下。
(3)test
test是maven工程的測試命令,會執行src/test/java下的單元測試類。
注意:
1、需要注掉pom.xml中打包跳過測試那一段
2、Maven要求測試類放在src/test/java目錄下,且測試方法的
類名以Test結尾、方法名以test開頭
(4)package
package是maven工程的打包命令,對於java工程執行package打成jar包,對於web工程打成war包。
(5)install
install是maven工程的安裝命令,執行install將項目打成jar包或war包發佈到本地倉庫。