Maven - 專案搭建
Maven - 專案搭建
!!!!!!!!!!!!!! IDEA配置 !!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!! 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"> <modelVersion>4.0.0</modelVersion> <groupId>com.itheima</groupId> <artifactId>java_web</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <name>java_web Maven Webapp</name> <!-- FIXME change it to the project's website --> <url>http://www.example.com</url> <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> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.3</version> <scope>provided</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>provided</scope> </dependency> </dependencies> <build> <plugins> <plugin> <!--外掛在倉庫中的座標--> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <!--外掛配置dependencies--> <configuration> <!--埠號--> <port>8080</port> <!--專案的訪問地址--> <path>/</path> <!--預設編碼--> <uriEncoding>UTF-8</uriEncoding> <!--伺服器名--> <server>tomcat7</server> </configuration> </plugin> </plugins> </build> </project>
我們回顧一下maven規範的目錄結構:
4.1 手動搭建maven專案
我們先使用手動的方式來建立maven專案
(1)在D盤下建立目錄mvnproject
並進入該目錄,作為我們的操作目錄
(2)建立我們的maven專案,建立一個目錄project-java
作為我們的專案資料夾,並進入到該目錄
(3)建立java程式碼(原始碼)所在目錄,即建立src/main/java
(4)建立配置檔案所在目錄,即建立src/main/resources
(5)建立測試原始碼所在目錄,即建立src/test/java
(6)建立測試存放配置檔案存放目錄,即src/test/resources
(7)在src/main/java
com/itheima
,在該目錄下建立Demo.java
檔案,作為演示所需java程式,內容如下
package com.itheima;
public class Demo{
public String say(String name){
System.out.println("hello "+name);
return "hello "+name;
}
}
(8)在src/test/java
中建立一個測試包(目錄)com/itheima
,在該包下建立測試程式DemoTest.java
package com.itheima; import org.junit.*; public class DemoTest{ @Test public void testSay(){ Demo d = new Demo(); String ret = d.say("maven"); Assert.assertEquals("hello maven",ret); } }
(9)在project-java/src
下建立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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.itheima</groupId>
<artifactId>project-java</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
</project>
通過前面的操作,我們已經搭建好了maven的專案結構,下面要通過maven來構建我們的專案
maven的構建命令以mvn
開頭,後面新增功能引數,可以一次性執行多個命令,用空格分離
mvn compile
:編譯
mvn clean
:清理
mvn test
:測試
mvn package
:打包
mvn install
:安裝到本地倉庫
下面我們來進行操作:
(1)在專案project-java
所在的DOS命令視窗下執行mvn compile
進行原始碼編譯,當然首次執行需要先下載相關外掛
編輯結果如下:
編譯完成後在專案project-java
下多了一個目錄target
,在這個目錄下就存放的是maven編譯好的一些東西
我們可以進入到target
目錄檢視
其中生成的classes
目錄就是編譯好的位元組碼檔案
(2)當然如果我們想清理掉這些東西,我們只需執行mvn clean
命令即可,清理掉後target
目錄也就消失了
(3)如果我們要執行測試包中的測試程式,我們只需執行mvn test
命令即可
此時在看target
目錄會多一些東西
其中產生的test-classes
就是測試程式碼的位元組碼檔案,surefire-reports
是它產生的測試報告
(4)使用mvn package
命令進行打包,如下
在生成的target
目錄中可以看到打包的結果
當然,如果仔細看DOS視窗輸出的我們會發現,mvn package
命令的時候maven會把前面兩個命令mvn compile,mvn test
都執行一遍
(5)使用mvn install
命令進行安裝,將專案打好的包存入本地倉庫
仔細檢視輸出會發現
mvn install
命令執行的時候也會將前面的命令都執行一遍
此時我們可以去本地倉庫中查詢,如何查詢?這個很重要
maven是按照groupId/artifactId/version
的結構在本地倉庫進行儲存
前面我們是通過手動的方式建立的maven專案,相對來說比較的麻煩,maven本身也是這樣覺得的,因此maven本身就給我們提供了相關的外掛來幫助我們快速構建專案,當然這是一些命令:
這些命令不用記,因為實際操作的時候也用不著,因為實際開發的時候我們基本都是用過一些IDE工具來進行專案開發,這些IDE工具基本都集成了Maven,我們操作起來非常簡單。
4.2 IDEA工具搭建maven專案
前面學習的基本都是通過命令來構建和管理專案,但是這在實際開發過程中基本不常用,常用的是通過相關IDE工具來進行專案的構建和管理,因此我們使用IDEA工具進行maven專案的搭建
需要注意的是:Maven和IDEA在版本上存在一些相容性問題,因為要合理的選擇Maven和IDEA的版本,本課程中提供安裝maven-3.6.1版本是可用的
4.2.1 不使用原型建立專案
(1)在IDEA中配置Maven
(2)建立maven工程
(3)填寫本專案的座標
(4)檢視各目錄顏色標記是否正確
(5)IDEA右側有一個maven管理介面,可點開檢視
(6)在專案的pom.xml檔案中新增專案資源依賴
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
(7)建立原始碼:com.itheima.Demo
package com.itheima;
/**
* Created by 傳智播客*黑馬程式設計師.
*/
public class Demo{
public String say(String name){
System.out.println("hello "+name);
return "hello "+name;
}
}
(8)建立測試程式碼:com.itheima.DemoTest
package com.itheima;
import org.junit.Assert;
import org.junit.Test;
/**
* Created by 傳智播客*黑馬程式設計師.
*/
public class DemoTest{
@Test
public void testSay(){
Demo d = new Demo();
String ret = d.say("maven");
Assert.assertEquals("hello maven",ret);
}
}
然後可以進行測試執行
執行的時候可以編輯執行模板:
然後點選執行:
4.2.2 使用原型建立專案
- 首先我們來看普通的java工程如何建立:
(1)建立maven專案的時候選擇使用原型骨架
(2)建立完成後發現通過這種方式缺少一些目錄,如下圖
我們需要手動去補全目錄,並且要對補全的目錄進行標記,切記
- 然後我們在來看web工程如何建立:
(1)選擇web對應的原型骨架
有很多的webapp原型骨架,選擇哪個基本都差不多,包括前面建立普通專案也是一樣,quickstart原型也有很多
(2)和前面建立普通專案一樣,通過原型建立web專案得到的目錄結構是不全的,因此需要我們自行補全,同時要標記正確,最終需要得到如下結構
(3)web工程建立好之後需要啟動執行,需要使用一個tomcat外掛來執行我們的專案,在pom.xml
中新增外掛的座標即可,最終改好的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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.itheima</groupId>
<artifactId>web01</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>web01 Maven Webapp</name>
<url>http://www.example.com</url>
<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>
</dependencies>
<build>
<finalName>web01</finalName>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
</plugin>
</plugins>
</build>
</project>
(4)外掛配置好後,在IDEA右側maven-project
操作面板上可以看到該外掛,並且可以利用該外掛啟動專案
執行後該外掛會給我們一個可執行地址:
如果我們想更換埠,只需要在pom.xml
中配置該外掛即可
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<port>80</port>
</configuration>
</plugin>
(5)同時為了執行方便我們也可以建立執行模板: