相同點:都是項目構(gòu)建管理工具。 不同點有: 1. Maven約定了目錄結(jié)構(gòu),而Ant沒有。 2. Maven是申明式的,用pom.xml文件;而Ant是程序式的,構(gòu)建過程需要自定義,用builder.xml. 3. Maven是有生命周期的,而Ant沒有。 4. Maven內(nèi)置依賴管理和Repository來實現(xiàn)依賴的管理和統(tǒng)一存儲;而Ant沒有。Maven第一次install的時候會把依賴的jar包和構(gòu)件從遠處庫(又叫中央庫,http://repol./maven2,統(tǒng)一存儲maven可以解釋的文件資源)下載到本地庫(先從本地倉庫找)。Maven還可以管理傳遞依賴。 5.Maven配置比較簡單,有很多的約定、規(guī)范、標準,可以用較少的代碼干更多的事;而Ant配置比較麻煩,需要配置整個構(gòu)建的過程(但Ant配置靈活)。 =================================================================================== =================================================================================== MAVEN的生命周期: 1. process resource: 2. compile: 輸出到target/classes 3. test: 4. install: 復(fù)制工作環(huán)境的資源 到 本地倉庫 5. deploy:復(fù)制本地倉庫的資源 到 遠程倉庫 =================================================================================== =================================================================================== MAVEN profile:1. 作用:提高項目構(gòu)建的可移植性,使之在不同的環(huán)境有不同的行為和配置。 2. 可配置激活條件 activation 3. 外部獨立的profile.xml 用戶獨特的C:\Users\Administrator\.m2/setting.xml/ 全局的apache-maven-3.3.9\conf\setting.xml 用戶獨特的:保存一些用戶私密的不想泄露的信息 全局的:保存一些所有用戶共享的信息 =================================================================================== =================================================================================== MAVEN
Assembly(套件): 1. 作用:靈活的構(gòu)建任意類型的自定義歸檔文件。 2. 怎么控制套件的內(nèi)容? fileSets dependencySets moduleSets =================================================================================== =================================================================================== MAVEN屬性有:maven項目的屬性(project.version / project.artifactId)、Settings屬性、環(huán)境變量的屬性(env.HOME/ env.PATH)、Java系統(tǒng)的屬性(java.home/java.version)和自定義的屬性(如POM.xml中定義的)。MAVEN資源過濾:過濾和解析工程中用到的maven屬性。 =================================================================================== =================================================================================== MAVEN NEXUS1. 作用:本質(zhì)是一個倉庫管理器,是一個介于遠程maven倉庫和本地倉庫之間的代理,可以部署組織內(nèi)部生成的構(gòu)件。用作maven私服,統(tǒng)一存儲和管理依賴的構(gòu)件,不需要反復(fù)地去中央倉庫和第三方重新下載。這樣的話,既減輕了了倉庫的壓力,同時也節(jié)省了時間和帶寬。在只有內(nèi)網(wǎng)的情況也能使用。 =================================================================================== =================================================================================== MAVEN編寫插件1. maven的核心是Plexus,它是一個IOC框架。 2. 插件包括插件描述符和Mojo(對應(yīng)maven中的一個目標)。 3. Mojo可以設(shè)置參數(shù),插件可以自定義生命周期。 =================================================================================== =================================================================================== MAVEN 還可以站點生成,定制站點樣式(包括自定義模板)。 |
|