文章目錄
一、Maven的簡介
1.1 定義
Maven 是 Apache 下的一個開源項目,是純 Java 開發,並且只是用來管理 Java 項目的。
1.2 優點
- 對於同一個 JavaWeb 項目,用 Maven 管理的要比不用的小很多,對 jar 包做了統一管理,依賴管理
- 一鍵構建
- 可跨平臺
- 應用在大型項目可提高開發效率
1.3 依賴管理
對 jar 包的統一管理,項目需要哪個就引用倉庫的哪個,這樣可以節省空間。
1.4 項目一鍵構建
Maven能幹的事:
編譯、測試(junit)、運行、打包、部署。
二、Maven的安裝配置
2.1 Maven工具的目錄結構
2.2 環境變量配置
2.3 Maven倉庫
- 本地倉庫(自己維護)
本地倉庫的配置只需要修改 Maven 核心文件settings.xml
文件就可以。
- 遠程倉庫(私服,公司維護)
- 中央倉庫(Maven團隊維護,共有 jar 包約兩個億)
三個倉庫的關係:
三、命令行中使用Maven工具
-
mvn clean:清理編譯的文件(target)
-
mvn compile:編譯主目錄的文件
-
mvn test:編譯並運行 test 目錄的代碼
-
mvn package:打包( jar 包(給別人用),war 包(Web工程,放到 tomcat 裏直接運行))
-
mvn install:就是把項目(打包後的 war 包)發佈到本地倉庫
-
mvn tomcat:run:運行(包括編譯)
四、Maven項目構建
4.1 Maven項目的目錄結構
4.2 Maven在eclipse中的配置
4.2.1 選擇Maven軟件
4.2.2 修改默認的本地倉庫地址
4.3 新建項目
4.3.1 新建maven項目
4.3.2 跳過骨架
如果不跳過骨架選擇創建出的項目目錄是不全的。
4.3.3 填寫座標
4.3.4 工程創建完成
4.3.5 處理紅色叉號
手動在webapp文件夾下創建一個 WEB-INF 文件夾,在裏面放一個 web.xml 文件。
Maven 支持 war 的打包方式,但是不支持 Web 工程。
也可一鍵生成(右鍵項目):
4.3.6 處理編譯版本
需要添加 JDK 編譯插件。
搜索。
該 <plugin>
被添加,但是其中的 <cofiguration>
需要自己寫。<cofiguration>
不設置則默認。
此時工程會報錯,需要更新。
4.4 完成項目
4.4.1 webapp 中添加 index.jsp
4.4.2 添加需要的 jar 包、插件
<build>
<plugins>
<!-- JDK編譯插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source> <!-- 源碼版本 -->
<target>1.7</target> <!-- 編譯後版本 -->
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<!--
<configuration>
<port>8080</port>
<path>/</path>
<charset>UTF-8</charset>
</configuration>
-->
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
注意:
maven-war 工程導入 jsp-api.jar 後運行時出錯。原因:部署到 tomcat 後,tomcat 中自帶的 jsp-api.jar 和工程中添加的 tomcat 插件衝突。
解決方案:需要將添加的 jar 包設置爲運行時不可用(設置依賴範圍):<scope>provided</scope>
。
依賴範圍:
- Compile(如 commons-lang.jar)
編譯(compile)時需要 測試時需要,運行時需要,打包時需要 - Provided(如 jsp-api.jar,servlet-api.jar)
編譯(compile)時需要,測試(test)時也需要 ,運行時不需要,打包時不需要 - Runtime(如數據庫驅動包)
編譯時不需要,測試時需要,運行時需要,打包時需要 - Test(如 junit.jar)
編譯時不需要,測試時需要,運行時不需要,打包也不需要
4.4.3 運行
注:tomcat:run 默認使用 tomcat6,如用 tomcat7 則需寫 tomcat7:run。
運行結果如下:
五、junit單元測試
5.1 由來
沒有 main 方法,怎麼調試?
單元測試,以方法爲單元進行調試,企業中就是這樣來進行調試的。
5.2 步驟
- 導入相關 jar 包
- 給方法添加註解
@Test
package test;
import org.junit.Test;
public class Demo01 {
@Test
public void test1() {
System.out.println("test1");
}
@Test
public void test2() {
System.out.println("test2");
}
@Test
public void test3() {
System.out.println("test3");
}
}
- 右鍵方法名 → Run as → JUnit Test
- 方法測試