項目構建之Maven快速入門

1、什麼是Maven

Maven是一種採用了約定優於配置思想的構建工具,它爲你項目配置和行爲提供了有意義的值,相對Ant構建項目結構和構建過程的高度自由不同,maven的項目目錄結構固定並且構建過程遵循一定的生命週期。

2、Maven安裝

1)Maven屬於解壓配置即可使用的軟件

  下載解壓apache-maven-3.0.5-bin.zip,例如解壓:D:/ apache-maven-3.0.5

(2)window中設置ant環境變量:

  ANT_HOME    D:/ apache-maven-3.0.5

  path             D:/ apache-maven-3.0.5/bin

(3)開始->運行->cmd,輸入如下命令:mvn -v

3、固定的項目結構和構建生命週期

maven的管理的項目目錄結構是固定的,在構建過程中都遵循一定的構建生命週期

目錄結構:

生命週期(項目構建過程):

在構建方面可以繼承各種插件來實現構建功能,也可以自己書寫構建插件實現某些功能

 

4、依賴管理

(1)maven只需在pom.xml構建腳本中聲明依賴包的座標即可自動下載和管理外部依賴,例如:

<dependency>
   <groupId>log4j</groupId>
   <artifactId>log4j</artifactId>
   <version>1.2.17</version>
</dependency>

(2)maven的依賴時通過依賴管理器管理的,依賴管理器通過pom.xml中依賴包的座標來查找或下載依賴,查找下載順序:本地maven倉庫,maven私服,遠程倉庫,例如:遠程倉庫依賴下載

(3)maven不僅可以通過依賴管理器依賴外部包,在多模塊項目開發中也可以很方便的管理個模塊之間的依賴

 

5、Maven實戰

項目目錄結構(假如其中demo爲D:\demo):

  1. demo
  2. |--src
  3. |----main
  4. |------java
  5. |--------com
  6. |-----------hello
  7. |--------------Hello.java(D:\demo\src\main\java\com\hello\Hello.java
  8. |------resources
  9. |----test
  10. |------java
  11. |------resources
  12. |--pom.xml(D:\demo\pom.xml

Hello.java

public class Hello{
	public static void main(String[] args){
		System.out.println("hello ant");
	}
}

pom.xml

下面是一個最基本的pom文件,配置了座標、版本號和項目打包方式其中插件maven-surefire-plugin和maven-compiler-plugin,這兩個插件是非必要的,如果不配置將採用默認插件配置

<?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.hello</groupId>
    <artifactId>hello</artifactId>
    <!--版本號-->
    <version>1.0.0-SNAPSHOT</version>
    <name>hello</name>
    <!--項目打包方式-->
    <packaging>jar</packaging>
	
	<build>
        <plugins>
		    <!--maven-surefire-plugin 是maven裏執行測試用例的插件-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>
			 <!--maven-compiler-plugin 是maven編譯打包插件-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.3</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

 

進入D:\demo目錄執行可以分別執行mvn clean 、mvn compile 、 mvn install 或者mvn clean compile 等等執行mvn命令

執行 mvn clean install 會有如下輸出:

從上面的輸出可以看出依次執行了maven-clean-plugin、maven-compiler-plugin.....、maven-install-plugin等插件,這個輸出直觀的反應了mvn默認生命週期有一個個插件按一定順序執行組成

執行 mvn clean install 會生成如下目錄結構:

項目目錄結構(假如其中demo爲D:\demo):

  1. demo
  2. |--src
  3. |----main
  4. |------java
  5. |--------com
  6. |-----------hello
  7. |--------------Hello.java(D:\demo\src\main\java\com\hello\Hello.java
  8. |------resources
  9. |----test
  10. |------java
  11. |------resources
  12. |--target
  13. |----classes
  14. |-------com
  15. |---------hello
  16. |-------------Hello.class(D:\demo\target\classes\com\hello\Hello.java
  17. |----hello-1.0.0-SNAPSHOT.jar(D:\demo\target\hello-1.0.0-SNAPSHOT.jar
  18. |--pom.xml(D:\demo\pom.xml

6、Maven的優缺點

優點:約定優於配置減少的重複構建步驟

缺點:約定優於配置構建靈活性下降了

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