Maven 和 Ant 的區別?


Maven 和 Ant 有什么不同呢?在回答這個問題以前,首先要強調一點:Maven 和 Ant 針對構建問題的兩個不同方面。Ant 為 Java 技術開發項目提供跨平台構建任務。Maven 本身描述項目的高級方面,它從 Ant 借用了絕大多數構建任務。因此,由於 Maven 和 Ant代表兩個差異很大的工具,所以接下來只說明這兩個工具的等同組件之間的區別,如下表所示:  

  
Maven Ant
標准構建文件 project.xml 和 maven.xml
  
build.xml
特性處理順序
${maven.home}/bin/driver.properties
${project.home}/project.properties
${project.home}/build.properties
${user.home}/build.properties
通過 -D 命令行選項定義的系統特性
最后一個定義起決定作用。
通過 -D 命令行選項定義的系統特性
由 任務裝入的特性
第一個定義最先被處理。
構建規則 構建規則更為動態(類似於編程語言);它們是基於 Jelly 的可執行 XML。 構建規則或多或少是靜態的,除非使用<script>任務
擴展語言
  
插件是用 Jelly(XML)編寫的。 插件是用 Java 語言編寫的。
構建規則可擴展性 通過定義 <preGoal> 和 <postGoal> 使構建 goal 可擴展。 構建規則不易擴展;可通過使用 <script> 任務模擬 <preGoal> 和 <postGoal> 所起的作用。
Maven是一個 項目管理工具,它包含了一個項目對象模型 (Project Object Model),一組標准集合,一個 項目生命周期(Project Lifecycle),一個依賴管理系統(Dependency Management System),和用來運行定義在生命周期階段(phase)中 插件(plugin)目標(goal)的邏輯。當你使用Maven的時候,你用一個明確定義的項目對象模型來描述你的項目,然后Maven可以應用橫切的邏輯,這些邏輯來自一組共享的(或者自定義的)插件。
Maven 有一個生命周期,當你運行 mvn install 的時候被調用。這條命令告訴 Maven 執行一系列的有序的步驟,直到到達你指定的生命周期。遍歷生命周期旅途中的一個影響就是,Maven 運行了許多默認的 插件目標,這些目標完成了像編譯和創建一個 JAR 文件這樣的工作。
此外,Maven能夠很方便的幫你管理項目報告,生成站點,管理JAR文件,等等。





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM