Maven和Ant

一、Ant

    Ant是最早出現的構建工具。

1、作用

  • 可以用ant編譯java類,生成class文件
  • ant可以自定義標籤、配置文件,用於構建。
  • ant可以把相關層構建成jar包 。
  • ant把整個項目生成web包,併發布到Tomcat 

2、優點

  • 跨平臺性:Ant是純Java語言編寫的,因此具有很好的跨平臺性。
  • 操作簡單:Ant是由一個內置任務和可選任務組成的。Ant運行時需要一個XML文件(構建文件)
  • Ant通過調用target樹,就可以執行各種task:每個task實現了特定接口對象。由於Ant構建文件時XML格式的文件,所以很容易維護和書寫,而且結構很清晰。
  • Ant可以集成到開發環境中:由於Ant的跨平臺性和操作簡單的特點,它很容易集成到一些開發環境中去。 

3、build.xml配置

    build.xml就是一個XML文件,它包含一個project節點和至少一個target節點,target節點包含多個task元素。簡單說,target節點代表着你的構建目標,而該目標是由多個操作/任務(task)來達成的。

下面詳解各節點及屬性含義:

https://blog.csdn.net/mevicky/article/details/72828554

二、Maven

 除了以程序構建能力爲特色之外,還提供高級項目管理工具

1、作用

  • 使用Project Object Model來對軟件項目管理;
  • 內置了更多的隱式規則,使得構建文件更加簡單;
  • 內置依賴管理和Repository來實現依賴的管理和統一存儲;
  • 內置了軟件構建的生命週期;

2、優點

  • 擁有約定,知道你的代碼在哪裏,放到哪裏去
  • 擁有一個生命週期,例如執行 mvn install就可以自動執行編譯,測試,打包等構建過程
  • 只需要定義一個pom.xml,然後把源碼放到默認的目錄,Maven幫你處理其他事情
  • 擁有依賴管理,倉庫管理 

3、pom.xml配置

<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.0http://maven.apache.org/xsd/maven-4.0.0.xsd">  
  
    <!-- 模型版本。maven2.0必須是這樣寫,現在是maven2唯一支持的版本 -->  
    <modelVersion>4.0.0</modelVersion>  
  
    <!-- 公司或者組織的唯一標誌,並且配置時生成的路徑也是由此生成, 如com.winner.trade,maven會將該項目打成的jar包放本地路徑:/com/winner/trade -->  
    <groupId>com.winner.trade</groupId>  
  
    <!-- 本項目的唯一ID,一個groupId下面可能多個項目,就是靠artifactId來區分的 -->  
    <artifactId>trade-core</artifactId>  
  
    <!-- 本項目目前所處的版本號 -->  
    <version>1.0.0-SNAPSHOT</version>  
  
    <!-- 打包的機制,如pom,jar, maven-plugin, ejb, war, ear, rar, par,默認爲jar -->  
    <packaging>jar</packaging>  
  
    <!-- 幫助定義構件輸出的一些附屬構件,附屬構件與主構件對應,有時候需要加上classifier才能唯一的確定該構件 不能直接定義項目的classifer,因爲附屬構件不是項目直接默認生成的,而是由附加的插件幫助生成的 -->  
    <classifier>...</classifier>  
  
    <!-- 定義本項目的依賴關係 -->  
    <dependencies>  
  
        <!-- 每個dependency都對應這一個jar包 -->  
        <dependency>  
  
            <!--一般情況下,maven是通過groupId、artifactId、version這三個元素值(俗稱座標)來檢索該構件, 然後引入你的工程。如果別人想引用你現在開發的這個項目(前提是已開發完畢併發布到了遠程倉庫),-->   
            <!--就需要在他的pom文件中新建一個dependency節點,將本項目的groupId、artifactId、version寫入, maven就會把你上傳的jar包下載到他的本地 -->  
            <groupId>com.winner.trade</groupId>  
            <artifactId>trade-test</artifactId>  
            <version>1.0.0-SNAPSHOT</version>  
  
            <!-- maven認爲,程序對外部的依賴會隨着程序的所處階段和應用場景而變化,所以maven中的依賴關係有作用域(scope)的限制。 -->  
            <!--scope包含如下的取值:compile(編譯範圍)、provided(已提供範圍)、runtime(運行時範圍)、test(測試範圍)、system(系統範圍) -->  
            <scope>test</scope>  
  
            <!-- 設置指依賴是否可選,默認爲false,即子項目默認都繼承:爲true,則子項目必需顯示的引入,與dependencyManagement裏定義的依賴類似  -->  
            <optional>false</optional>  
  
            <!-- 屏蔽依賴關係。 比如項目中使用的libA依賴某個庫的1.0版,libB依賴某個庫的2.0版,現在想統一使用2.0版,就應該屏蔽掉對1.0版的依賴 -->  
            <exclusions>  
                <exclusion>  
                    <groupId>org.slf4j</groupId>  
                    <artifactId>slf4j-api</artifactId>  
                </exclusion>  
            </exclusions>  
  
        </dependency>  
  
    </dependencies>  
  
    <!-- 爲pom定義一些常量,在pom中的其它地方可以直接引用 使用方式 如下 :${file.encoding} -->  
    <properties>  
        <file.encoding>UTF-8</file.encoding>  
        <java.source.version>1.5</java.source.version>  
        <java.target.version>1.5</java.target.version>  
    </properties>  
  
    ...  
</project>  

https://blog.csdn.net/u012152619/article/details/51485297

4、Maven倉庫配置

    Maven缺省的本地倉庫地址爲${user.home}/.m2/repository 。也就是說,一個用戶會對應的擁有一個本地倉庫。

你也可以自定義本地倉庫的位置,修改settings.xml :

 <localRepository>E:/repository</localRepository>

https://blog.csdn.net/u013142781/article/details/50316383

5、鏡像配置

<mirror> 
  <id>alimaven</id> 
  <name>aliyun maven</name> 
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url> 
  <mirrorOf>central</mirrorOf> 
</mirror>

 

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