Maven的簡單使用
Maven的百度百科:
Maven項目對象模型(POM),可以通過一小段描述信息來管理項目的構建,報告和文檔的項目管理工具軟件。
Maven 除了以程序構建能力爲特色之外,還提供高級項目管理工具。由於 Maven 的缺省構建規則有較高的可重用性,所以常常用兩三行 Maven 構建腳本就可以構建簡單的項目。由於 Maven 的面向項目的方法,許多 Apache Jakarta 項目發文時使用 Maven,而且公司項目採用 Maven 的比例在持續增長。
Maven這個單詞來自於意第緒語(猶太語),意爲知識的積累,最初在Jakata Turbine項目中用來簡化構建過程。當時有一些項目(有各自Ant build文件),僅有細微的差別,而JAR文件都由CVS來維護。於是希望有一種標準化的方式構建項目,一個清晰的方式定義項目的組成,一個容易的方式發佈項目的信息,以及一種簡單的方式在多個項目中共享JARs。
變化創建項目和導jar包的方法,變成企業的方法,
maven 項目構建和項目管理
現存在的問題是:沒有對jar包進行統一管理,個人與團體之間的jar包沒有統一,容易出現不兼容的問題。
使用maven後將會解決和實現:對jar包的統一管理,通過maven倉庫來管理,由本地倉庫管理所有的jar包,同時對版本進行管理
在這裏我使用的是idea2019.1來創建maven項目
創建maven項目
點擊不同的選項,就會創建不同的項目
上述的三個參數就是著名的 GAV 座標,
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
當第一次創建maven項目的時候我發現上圖的setting.xml是沒有這個文件的,在項目創建完成後並且自動導jar包纔會出現,這是我們就可以打開這個setting.xml這個文件對裏面的內容進行個性化修改
這個在互聯網上可以輕鬆找到,我在這裏使用的是阿里雲的鏡像,因爲,感覺阿里雲在國內,下載的時候比較快
我修改爲了D:/MavenStore/repository====這樣不佔C盤空間
<localRepository>D:/MavenStore/repository</localRepository>
在D:/MavenStore/repository目錄下就可以發現很多jar包
這裏使用的是阿里雲的鏡像
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里雲公共倉庫</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
項目和倉庫作關聯=======setting.xml配置文件關聯,
點擊完成後就創建好了一個普通的maven項目
web的maven項目也是一樣的,同理可得
maven的生命週期
簡要點就是,
compile 編譯
clean 清理
test 測試------測試是單獨打包的
install 安裝------打包並部署導本地倉庫,會生成jar包
ps:當創建的是一個maven web的項目的時候會打包成war包
POM座標–使用maven不需要導入jar包,只需要copy pom座標
座標的組成就是GAV座標
實例如下
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId> <version>4.3.13.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.3.25.RELEASE</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
scope:用來控制依賴和編譯,測試,運行得classpath的關係
complie:默認編譯的依賴範圍對於編譯測試運行均有效
test:測試的依賴範圍,只對測試clsspath有效
provided:對於編譯,測試的classpath都有效,但對於運行無效
多模塊開發
方式一
創建空白項目選擇empty project,類似eclipse創建多項目的方式,(不存在父工程)
I創建空工程
II創建模塊項目
III調用各模塊之間的能力
方式二
父子工程(聚合工程)
1.選擇站點模式(見圖一)
2.刪除src,使其稱爲父項目,讓父項目管理子項目的jar包
3,建立子項目{new module{
quickstart普通項目
webappweb項目}
}
4.模塊之間的調用{將開發的模塊打包成jar包,放入倉庫提供給其他的團隊使用}
)
1.選擇站點模式(見圖一)
2.刪除src,使其稱爲父項目,讓父項目管理子項目的jar包
3,建立子項目{new module{
quickstart普通項目
webappweb項目}
}
4.模塊之間的調用{將開發的模塊打包成jar包,放入倉庫提供給其他的團隊使用}