當前位置:編程學習大全網 - 源碼破解 - Apache Ant和Apache Maven的區別

Apache Ant和Apache Maven的區別

Apache Ant

1、Ant 是程序化的,妳必須明確的告訴 Ant 做什麽,什麽時候做。妳必須告訴它去編譯,然後復制,然後壓縮。

2、Ant 沒有生命周期,妳必須定義目標和目標之間的依賴。妳必須手工為每個目標附上壹個任務序列。

Apache Maven

1、Maven 擁有約定,因為妳遵循了約定,它已經知道妳的源代碼在哪裏。它把字節碼放到 target/classes,然後在 target生成壹個 JAR 文件。

2、Maven 是聲明式的。妳需要做的只是創建壹個 pom.xml 文件然後將源代碼放到默認的目錄。Maven 會幫妳處理其它的事情。

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

Maven 以插件的形式為壹些壹般的項目任務提供了內置的智能。如果妳想要編寫運行單元測試,妳需要做的只是編寫測試然後放到/usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/content-zh/src/test/java,添加壹個對於 TestNG 或者 JUnit 的測試範圍依賴,然後運行 mvn test。

如果妳想要部署壹個web 應用而非 JAR ,妳需要做的是改變妳的項目類型為 war ,然後把妳文檔根目錄置為 /usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/content-zh/src/main/webapp。當然,妳可以用 Ant 做這些事情,但是妳將需要從零開始寫這些指令。使用 Ant ,妳首先需要確定 JUnit JAR 文件應該放在哪裏,然後妳需要創建壹個包含這個 JUnit JAR 文件的 classpath ,然後告訴 Ant 它應該從哪裏去找測試源代碼,編寫壹個目標來編譯測試源代碼為字節碼,使用 JUnit 來執行單元測試。沒有諸如 antlibs 和 lvy 等技術的支持(即使有了這些支持技術),Ant 給人感覺是自定義的程序化構建。

項目中壹組高效的堅持約定的 Maven POM ,相對於 Ant 的配置文件,只有很少的 XML 。

Maven 的另壹個優點是它依靠廣泛公用的 Maven 插件。所有人使用 Maven Surefire 插件來運行單元測試,如果有人添加了壹些針對新的測試框架的支持,妳可以僅僅通過在妳項目的 POM 中升級某個特定插件的版本來獲得新的功能。

使用 Maven 還是 Ant 的決定不是非此即彼的,Ant 在復雜的構建中還有它的位置。如果妳目前的構建包含壹些高度自定義的過程,或者妳已經寫了壹些 Ant 腳本通過壹種明確的方法完成壹個明確的過程,而這種過程不適合 Maven 標準,妳仍然可以在Maven 中用這些腳本。作為壹個 Maven 的核心插件, Ant 還是可用的。自定義的插件可以用 Ant 來實現,Maven 項目可以配置成在生命周期中運行 Ant 的腳本。

  • 上一篇:建築施工圖紙怎麽看
  • 下一篇:進退人才,當觀其趣向之大體,不當責其行事之小節意思
  • copyright 2024編程學習大全網