maven 從入門到實戰

1.什麼是Maven

咱們要開發一個Java 項目,爲了保證編譯經過, 一般狀況下會去尋找jar包,這樣很容易形成項目的臃腫, maven提供了很好的項目開發規範與工具, maven 統一管理了jar包,接下來讓咱們來玩玩maven吧java

 

2.安裝Mavenweb

 

Maven 是Apache 基金會的頂級項目, 咱們能夠從http://maven.apache.org/ 下載一個apache-maven-3.0.4-bin.zip 文件,將其解壓到D:/maven 目錄下apache

這裏須要配置一下環境變量:緩存

  • M2_HOME=D:/maven;tomcat

  • MAVEN_OPTS=-Xms128m  -Xmx512mapp

    以上M2_HOME 是必要配置的, 若是想要Maven跑的快一點, 能夠根據本身的狀況設置MAVEN_OPTSwebapp

如今咱們能夠打開cmd,輸入:maven

mvn -vide

看到一下信息說明 Maven 安裝成功了工具

 

3.Maven 倉庫

Maven給咱們帶來最直接的幫助就是jar 包獲得了統一的管理, 這些jar包存在本地倉庫,位於C:.m2目錄下(也能夠經過maven\conf\setting.xml 修改默認地址)

實際上本地倉庫能夠理解爲緩存, 由於項目會先從本地倉庫中獲取jar包, 當沒法獲取指定jar包的時候,本地倉庫會從遠程倉庫中下載jar包, 並放入本地倉庫中,以備未來使用, 這個遠程倉庫是Maven官方提供的, 能夠經過訪問 (http://search.maven.org/ ),經過圖A-1 能夠清晰的表達項目,本地倉庫,遠程倉庫之間的關係.

 

 

4.建立Maven項目

咱們建立一個Java Web項目,在cmd 中輸入:

mvn archetype:generate

咱們建立的Java Web項目,因此能夠選擇maven-archetype-webapp, 經過maven能夠知道如下信息:

 

  • 項目groupId(組織名)-可輸入com.smart 域名的反轉

  • 項目artifactId(構件名)-可輸入smart

  • 項目version(版本號)-可輸入1.0

  • 項目package(包名)-可輸入com.smart

也可使用IDEA 直接建立一個maven項目,只須要選擇File-New-Project,以下圖所示:

 

5.理解POM結構

當打開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.smart</groupId>
    <artifactId>smart</artifactId>
    <version>1.0.0</version>
    <packaging>war</packaging>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <junit.version>4.11</junit.version>
    </properties>

    <dependencies>
        <!--junit-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    
    <build>
    <plugins>
        <!--compile-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>${maven.compile.version}</version>
            <configuration>
                <source>${java.version}</source>
                <target>${java.version}</target>
            </configuration>
        </plugin>

        <!--maven 打包時想跳過單元測試-->
        <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>
            </configuration>
        </plugin>
    </plugins>
</build>

簡單介紹一下:

  • modelVersion 是POM的版本號,如今是4.0.0, 默認的不須要修改

  • groupId,artifactId,version分別表明Maven項目的組織名,構件名,版本號,它們三個是Maven座標

  • packaging表示該項目的打包方式,war表示打包爲war文件,默認爲jar,表示打包爲jar文件

  • dependencies定義該項目的依賴關係

  • build表示與構件相關的配置

經過IDEA能夠很清晰的看到POM結構圖:

每一個pom.xml都應該有:

 

  • Lifecycle-生命週期

  • Plugins-插件

  • Dependencied-依賴

pom.xml文件中會有一個scope做用域, 包括如下幾種:

 

  • compile-默認做用域 編譯 測試 運行時有效

  • test-測試時有效

  • runtime-運行時有效

  • provided-編譯 測試有效 運行時無效

  • system-與provided相似 但依賴於系統資源

6.使用Maven命令

maven 經常使用的命令有:

  • mvn clean-清空target目錄

  • mvn compile-編譯源代碼

  • mvn package-生成構件包 通常爲jar或者war包

  • mvn install-將構件包安裝到本地倉庫

  • mvn deploy -N -將構件包部署到遠程倉庫

  • mvn tomcat:run-經過maven運行項目

  • mvn dependency:sources-從本地倉庫獲取源代碼

  • mvn -X compile - debug模式編譯項目

  • mvn clean install -DskipTests -U

7.後記

關於maven在實際項目的實戰 後續會慢慢添加,下一次我會介紹一下如何將構件發佈到Maven中央倉庫

相關文章
相關標籤/搜索