1.maven的介紹;
Maven 是一個項目管理和構建自動化工具服傍。maven提供了開發(fā)人員構建一個完整的生命周期框架。開發(fā)團隊可以自動完成項目的基礎工具建設,Maven使用標準的目錄結構和默認構建生命周期却嗡。
2.主要優(yōu)點:
統(tǒng)一開發(fā)規(guī)范與工具;
統(tǒng)一管理jar包嘹承;
3.pom.xml;
因為這個配置文件是Maven的核心窗价,因此有必要詳細解讀一下pom.xml,來先看一下上面的幾個:
1叹卷、modelVersion :指定了當前Maven模型的版本號撼港,對于Maven2和Maven3來說,它只能是4.0.0
2骤竹、groupId:顧名思義帝牡,這個應該是公司名或是組織名。一般來說groupId是由三個部分組成蒙揣,每個部分之間以"."分隔靶溜,第一部分是項目用途,比如用于商業(yè)的就是"com"鸣奔,用于非營利性組織的就 是"org"墨技;第二部分是公司名惩阶,比如"tengxun"、"baidu"扣汪、"alibaba"断楷;第三部分是你的項目名
3、artifactId:可以認為是Maven構建的項目名崭别,比如你的項目中有子項目冬筒,就可以使用"項目名-子項目名"的命名方式
4、version: 版本號茅主,SNAPSHOT意為快照舞痰,說明該項目還在開發(fā)中,是不穩(wěn)定的版本诀姚。在Maven中很重要的一點是响牛,groupId、artifactId赫段、version三個元素生成了一個Maven項目的基本坐標呀打,這非常重要,我在使用和研究Maven的時候多次感受到了這點糯笙。
4.maven工程的結構:
pom.xml 用于maven的配置文件
/src 源代碼目錄
/src/main 工程源代碼目錄
/src/main/java 工程java源代碼目錄
/src/main/resource 工程的資源目錄
/src/test 單元測試目錄
/src/test/java
/target 輸出目錄贬丛,所有的輸出物都存放在這個目錄下
/target/classes 編譯之后的class文件
5.常見的問題總結:
1.增加或者刪除依賴:
答:直接在pom文件中加入一個dependency節(jié)點,如果要刪除依賴给涕,把對應的dependency節(jié)點刪除即可豺憔。
2. 問:我的目錄是非標準的目錄結構,如何設置讓maven支持够庙?
答:指定source目錄和test-source目錄即可恭应。
< build >
< directory > target </ directory >
< sourceDirectory > src </ sourceDirectory >
< scriptSourceDirectory > js/scripts </ scriptSourceDirectory
< testSourceDirectory > test </ testSourceDirectory >
< outputDirectory > bin </ outputDirectory >
< testOutputDirectory > bin </ testOutputDirectory >
</ build >這個例子把源代碼設置成了src目錄,測試代碼在test目錄首启,所以輸出到bin目錄暮屡。這里要注意,directory如果也設置成bin目錄的 話毅桃,maven打包的時候會引起死循環(huán),因為directory是所有工作存放的地方准夷,默認包含outputDirectory定義的目錄在內(nèi)钥飞。
3.我源代碼是UTF8格式的,我如何在maven中指定衫嵌?
設置一個變量即可
< project >
...
< properties >
< project.build.sourceEncoding > UTF-8 </ project.build.sourceEncoding >
</ properties >
...
</ project >
4.問:我的源代碼目錄中有一部分文件我不想讓maven編譯读宙,怎么做?
<excludes>
<exclude>com/sun/enterprise/config /ConfigBeansFactory.java</exclude>
<exclude>com/sun/enterprise/config/clientbeans /**</exclude>
</excludes>
5.5楔绞、如何在使用命令方式下載依賴的同時下載源碼
1. 使用maven命令:mvn dependency:sources 下載依賴包的源代碼结闸。
2. 使用參數(shù): -DdownloadSources=true 下載源代碼jar唇兑。 -DdownloadJavadocs=true 下載javadoc包。