使用maven創建Spring項目

概念

Maven是java的一個依賴管理工具。所謂依賴就是指在Java開發過程中引入的各種jar包和第三方庫,而可能這些庫本省還要引用其他的庫,這樣我們直接引用的稱爲直接依賴,庫的依賴稱爲間接依賴。如果我們手動去引入這些依賴,過程將變得十分繁瑣,因此需要一個倉庫Maven來爲我們管理並引入這些依賴。Maven中把每個依賴包稱爲構件

那麼我們如何從倉庫中準確的查找到每個構件呢?這就需要通過座標來完成,maven倉庫的座標由groupId、artifactId、version三者組成。其中groupId爲你的公司名稱,artifactId爲你的項目名,version爲項目的版本號,package爲所需要創建的包名。即我們在maven倉庫中查找依賴時,先找到公司名groupId,再找到項目名,最後找到版本號即可唯一確定一個依賴。

maven的倉庫分爲本地倉庫和遠程倉庫,本地倉庫是指maven會將依賴包下載到本地的某個位置,查找依賴時先查找本地倉庫,如果沒找到纔回到網上的遠程倉庫進行查找並下載。如果大家都訪問maven的同一個倉庫,會造成負載壓力過大且訪問過慢,因此maven在不同地方提供了鏡像倉庫供人們就近訪問。

maven還提供了許多插件,我們可以使用插件很便捷地完成項目的構建、編譯、打包等操作。

在maven中如果A依賴B,B依賴C,C依賴D,而A依賴E,E也依賴D,那麼A會依賴關係較近E的D。如果兩個依賴據A一樣近,則會根據依賴解析的先後順序進行依賴。

安裝配置

安裝:首先從Maven官網下載所需maven的壓縮包,之後將其解壓,最後將解壓目錄下的bin文件夾添加到PATH路徑中就可以在命令行下使用mvn --v查看版本號。

配置倉庫:編輯maven/conf/settings.xml文件,在<localRepository>標籤中指定本地倉庫的位置。

<localRepository>D:/Java/maven/repository</localRepository>

添加國內鏡像源:從國內鏡像源下載依賴比直接使用默認下載源更快,在<mirros>標籤內如下配置爲阿里雲的鏡像源

  <mirrors>
    <mirror>
    <id>aliyunmaven</id>
    <mirrorOf>central</mirrorOf>
    <name>aliyun maven</name>
    <url>https://maven.aliyun.com/repository/public </url>
    </mirror>
  </mirrors>

創建項目

maven常用的命令如下:

mvn -compile

編譯項目

mvn -test

測試項目

mvn -package

打包項目

mvn -install

安裝jar包到本地倉庫

mvn -clean

刪除編譯好的目標文件

通過archetype插件創建項目:在命令行輸入mvn archetype:generate會開始自動創建maven項目,如下所示會提示選擇要創建的maven類型編號、並輸入groupId、artifactId、version、package等內容。

也可以在一條命令行中指定 groupId、artifactId、version、package等內容

mvn archetype:generate -DgroupId=com.tory -DartifactId=spring-mvc-study -DarchetypeArtifactId=maven-archetype-webapp

最後使用jetty容器運行項目:mvn jetty:run ,注意需要在pom中引入jetty插件,當然也可以引入Tomcat插件在該容器中運行項目。

在IntelliJ IDEA中創建Maven項目更爲簡便,首先在IDEA中配置maven:在IDEA中打開->File | Settings | Build, Execution, Deployment | Build Tools | Maven對如下三個選項欄進行配置,分別對應maven的安裝目錄,配置文件及倉庫的目錄

 接着創建一個Maven項目,點擊 File | New | Project彈出如下界面,選擇maven類型並點擊Next。如果需要創建模板可以勾選create from archetype並選擇所需模板

接下來設置項目名稱與位置,並且設置GroupId、ArtifactId、Version信息

最後選擇maven的信息,點擊Finish創建完成

pom.xml文件

POM是項目對象模型(Project Object Model)的簡稱,創建好maven項目後會在根目錄下生成pom.xml文件對依賴進行管理。如下所示,

首先<modelVersion>指定了POM的版本。

<groupId>、<artifactId>、<version>分別指定了項目的三個座標,groupId通常由“公司名.項目名”構成,artifactId由“項目-模塊名”構成。version一般由三位數字,第一個數字代表大版本號,第二個數字代表分支版本號,第三個數字代表小版本號。後面的Snapshot代表快照版本,alpha代表內測版本,beta代表公測版本,RC(Release Candidate)發行前最後的候選版本,release代表穩定版本,GA(General Availability)正式發佈版。

<packaging>指定項目的打包方式,默認爲jar包

<name>代表項目的名字,<url>爲項目的網址

<dependencies>中通過座標的方式引入項目需要的具體依賴。<scope>代表依賴使用的範圍,這裏爲test代表只能在test中使用該依賴。默認爲compile,在編譯、測試、運行都有效,provided在編譯、測試有效,runtime在廁所、運行有效。還可以使用<exclusion>標籤來排除引用依賴的傳遞依賴,比如A依賴B,B依賴C,在A中引入B依賴時不希望引用C,這時就可以使用exclusion排除C。

<build>下引入所使用的maven插件

<?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">
  <!--指定POM版本-->
  <modelVersion>4.0.0</modelVersion>

  <!--項目的maven座標-->
  <groupId>org.example</groupId>
  <artifactId>SpringMVC</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>SpringMVC Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <!--項目所需依賴-->
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <!--所用maven插件-->
  <build>
    <finalName>SpringMVC</finalName>
    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>

pom的依賴可以進行繼承,例如在父類項目的pom的<dependencyManagement>中引入了junit依賴如下,則在子項目依賴了父項目之後就可以繼承junit而不需要再次引入。

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13</version>
        <scope>test</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

 

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