使用Maven管理軟件項目

什麼是Mavencss

  

  Maven是一個 項目管理工具,它包含了一個項目對象模型 (Project Object Model),一組標準集合,一個 項目生命週期(Project Lifecycle),一個依賴管理系統(Dependency Management System),和用來運行定義在生命週期階段(phase)中 插件(plugin)目標(goal)的邏輯。當你使用Maven的時候,你用一個明肯定義的項目對象模型來描述你的項目,而後Maven能夠應用橫切的邏輯,這些邏輯來自一組共享的(或者自定義的)插件。

 

Maven 有一個生命週期,當你運行 mvn install 的時候被調用。這條命令告訴 Maven 執行一系列的有序的步驟,直到到達你指定的生命週期。遍歷生命週期旅途中的一個影響就是,Maven 運行了許多默認的 插件目標,這些目標完成了像編譯和建立一個 JAR 文件這樣的工做。

 

此外,Maven可以很方便的幫你管理項目報告,生成站點,管理JAR文件,等等。
爲何要用Maven
  我最初使用Maven是由於使用jar包的不便,每次在Java項目中要使用相應的jar包都要先上網下載,因爲下載途徑的多樣性,對這些jar包的篩選及其穩定性也成了一個使人頭疼的事情,jar包一多,對這些jar包的管理也是很煩的。而使用Maven就能夠很好的解決這個問題,在Maven項目中,經過pom.xml添加依賴(jar包),只須在pom.xml文件中配置所需用到jar包的座標,版本便可,在建立Maven項目時會自動到Maven中央倉庫下載jar包到本地,Maven中央倉庫有各類各樣的jar包以及各類版本,使用起來很方便。
  除此以外,Maven還有如下功能:
  1.編譯源代碼
   2. 發佈項目
   3. 編譯測試源代碼
   4.運行應用程序中的單元測試
   5.生成項目相關信息的網站
   6.清除項目目錄中的生成結果
   7.根據項目生成的jar
   8. 在本地Repository中安裝jar
   9.eclipse 生成eclipse項目文件
  10啓動jetty服務
  11啓動tomcat服務
  12清除之前的包後從新打包,跳過測試類
Maven標準目錄結構
     1.標準目錄結構:

 

srcjava

  -main
      –bin 腳本庫
      –java java源代碼文件
      –resources 資源庫,會自動複製到classes目錄裏
      –filters 資源過濾文件
      –assembly 組件的描述配置(如何打包)
      –config 配置文件
      –webapp web應用的目錄。WEB-INF、css、js等
  -test
      –java 單元測試java源代碼文件
      –resources 測試須要用的資源庫
      –filters 測試資源過濾庫
  -site Site(一些文檔)
target
LICENSE.txt Project’s license
README.txt Project’s readme

工程根目錄下就只有src和target兩個目錄

target是有存放項目構建後的文件和目錄,jar包、war包、編譯的class文件等。

target裏的全部內容都是maven構建的時候生成的mysql

pom.xmlweb

  下貼SSM框架經常使用的依賴構成的pom.xml文件:spring

    

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  
  3.     <modelVersion>4.0.0</modelVersion>  
  4.     <groupId>com.zhdm</groupId>  
  5.     <artifactId>SSMDemo</artifactId>  
  6.     <packaging>war</packaging>  
  7.     <version>0.0.1-SNAPSHOT</version>  
  8.     <name>SSMDemo Maven Webapp</name>  
  9.     <url>http://maven.apache.org</url>  
  10.   
  11.     <properties>  
  12.         <!-- spring版本號 -->  
  13.         <spring.version>4.0.2.RELEASE</spring.version>  
  14.         <!-- mybatis版本號 -->  
  15.         <mybatis.version>3.2.6</mybatis.version>  
  16.         <!-- log4j日誌文件管理包版本 -->  
  17.         <slf4j.version>1.7.7</slf4j.version>  
  18.         <log4j.version>1.2.17</log4j.version>  
  19.     </properties>  
  20.   
  21.   
  22.     <dependencies>  
  23.         <!-- 加密解密須要的jar包 -->  
  24.         <dependency>  
  25.             <groupId>org.bouncycastle</groupId>  
  26.             <artifactId>bcprov-ext-jdk15on</artifactId>  
  27.             <version>1.50</version>  
  28.         </dependency>  
  29.   
  30.   
  31.         <dependency>  
  32.             <groupId>org.apache.directory.studio</groupId>  
  33.             <artifactId>org.apache.commons.codec</artifactId>  
  34.             <version>1.8</version>  
  35.         </dependency>  
  36.   
  37.   
  38.         <!-- 郵件須要的jar包,記不清是否必定須要 -->  
  39.         <dependency>  
  40.             <groupId>com.sun.mail</groupId>  
  41.             <artifactId>javax.mail</artifactId>  
  42.             <version>1.5.0</version>  
  43.         </dependency>  
  44.         <!-- 導入dbcp的jar包,用來在applicationContext.xml中配置數據庫 -->  
  45.         <dependency>  
  46.             <groupId>commons-dbcp</groupId>  
  47.             <artifactId>commons-dbcp</artifactId>  
  48.             <version>1.2.2</version>  
  49.         </dependency>  
  50.         <!-- 導入java ee jar 包 -->  
  51.         <dependency>  
  52.             <groupId>javax</groupId>  
  53.             <artifactId>javaee-api</artifactId>  
  54.             <version>7.0</version>  
  55.         </dependency>  
  56.         <!-- spring核心包 -->  
  57.         <dependency>  
  58.             <groupId>org.springframework</groupId>  
  59.             <artifactId>spring-core</artifactId>  
  60.             <version>${spring.version}</version>  
  61.         </dependency>  
  62.   
  63.   
  64.         <dependency>  
  65.             <groupId>org.springframework</groupId>  
  66.             <artifactId>spring-web</artifactId>  
  67.             <version>${spring.version}</version>  
  68.         </dependency>  
  69.         <dependency>  
  70.             <groupId>org.springframework</groupId>  
  71.             <artifactId>spring-oxm</artifactId>  
  72.             <version>${spring.version}</version>  
  73.         </dependency>  
  74.         <dependency>  
  75.             <groupId>org.springframework</groupId>  
  76.             <artifactId>spring-tx</artifactId>  
  77.             <version>${spring.version}</version>  
  78.         </dependency>  
  79.   
  80.   
  81.         <dependency>  
  82.             <groupId>org.springframework</groupId>  
  83.             <artifactId>spring-jdbc</artifactId>  
  84.             <version>${spring.version}</version>  
  85.         </dependency>  
  86.   
  87.   
  88.         <dependency>  
  89.             <groupId>org.springframework</groupId>  
  90.             <artifactId>spring-webmvc</artifactId>  
  91.             <version>${spring.version}</version>  
  92.         </dependency>  
  93.         <dependency>  
  94.             <groupId>org.springframework</groupId>  
  95.             <artifactId>spring-aop</artifactId>  
  96.             <version>${spring.version}</version>  
  97.         </dependency>  
  98.   
  99.   
  100.         <dependency>  
  101.             <groupId>org.springframework</groupId>  
  102.             <artifactId>spring-context-support</artifactId>  
  103.             <version>${spring.version}</version>  
  104.         </dependency>  
  105.   
  106.   
  107.         <dependency>  
  108.             <groupId>org.springframework</groupId>  
  109.             <artifactId>spring-test</artifactId>  
  110.             <version>${spring.version}</version>  
  111.         </dependency>  
  112.         <!-- mybatis核心包 -->  
  113.         <dependency>  
  114.             <groupId>org.mybatis</groupId>  
  115.             <artifactId>mybatis</artifactId>  
  116.             <version>${mybatis.version}</version>  
  117.         </dependency>  
  118.         <!-- mybatis/spring包 -->  
  119.         <dependency>  
  120.             <groupId>org.mybatis</groupId>  
  121.             <artifactId>mybatis-spring</artifactId>  
  122.             <version>1.2.2</version>  
  123.         </dependency>  
  124.         <dependency>  
  125.             <groupId>junit</groupId>  
  126.             <artifactId>junit</artifactId>  
  127.             <version>4.11</version>  
  128.             <scope>test</scope>  
  129.         </dependency>  
  130.         <!-- 導入mybatis包 -->  
  131.         <dependency>  
  132.             <groupId>org.mybatis</groupId>  
  133.             <artifactId>mybatis</artifactId>  
  134.             <version>3.2.6</version>  
  135.         </dependency>  
  136.   
  137.   
  138.         <!-- 導入Mysql數據庫連接jar包 -->  
  139.         <dependency>  
  140.             <groupId>mysql</groupId>  
  141.             <artifactId>mysql-connector-java</artifactId>  
  142.             <version>5.1.30</version>  
  143.         </dependency>  
  144.         <!-- json數據 -->  
  145.         <dependency>  
  146.             <groupId>org.codehaus.jackson</groupId>  
  147.             <artifactId>jackson-core-asl</artifactId>  
  148.             <version>1.9.13</version>  
  149.         </dependency>  
  150.         <dependency>  
  151.             <groupId>org.codehaus.jackson</groupId>  
  152.             <artifactId>jackson-mapper-asl</artifactId>  
  153.             <version>1.9.13</version>  
  154.         </dependency>  
  155.           
  156.         <!-- JSTL標籤類 -->  
  157.         <dependency>  
  158.             <groupId>jstl</groupId>  
  159.             <artifactId>jstl</artifactId>  
  160.             <version>1.2</version>  
  161.         </dependency>  
  162.           
  163.   
  164.   
  165.         <!-- 日誌文件管理包 -->  
  166.         <!-- log start -->  
  167.         <dependency>  
  168.             <groupId>log4j</groupId>  
  169.             <artifactId>log4j</artifactId>  
  170.             <version>${log4j.version}</version>  
  171.         </dependency>  
  172.         <dependency>  
  173.             <groupId>org.slf4j</groupId>  
  174.             <artifactId>slf4j-api</artifactId>  
  175.             <version>${slf4j.version}</version>  
  176.         </dependency>  
  177.         <dependency>  
  178.             <groupId>org.slf4j</groupId>  
  179.             <artifactId>slf4j-log4j12</artifactId>  
  180.             <version>${slf4j.version}</version>  
  181.         </dependency>  
  182.         <!-- log end -->  
  183.     </dependencies>  
  184.     <build>  
  185.         <finalName>SSMDemo</finalName>  
  186.     </build>  
  187. </project>  
相關文章
相關標籤/搜索