什么是maven?(eclipse)

什么是maven?

Maven是一個用于項(xiàng)目構(gòu)建的工具,通過它便捷的管理項(xiàng)目的生命周期。即項(xiàng)目的jar包依賴,開發(fā),測試,發(fā)布打包。

下面我自己總結(jié)一下它的幾個特點(diǎn),看了這些特點(diǎn),也許對maven有更多的了解。

1 jar包依賴

這個也許會maven最突出的特點(diǎn)了使用maven不需要上網(wǎng)單獨(dú)下載jar包,只需要在配置文件pom.xml中配置jar包的依賴關(guān)系,就可以自動的下載jar包到我們的項(xiàng)目中。這樣,別人開發(fā)或者使用這個工程時,不需要來回的拷貝jar包,只需要復(fù)制這個pom.xml就可以自動的下載這些jar包。

而且,我們自己下載jar包,還有可能造成版本的不一致,這樣在協(xié)同開發(fā)的過程中就有可能造成代碼運(yùn)行的不一致。通過使用maven精確的匹配jar包,就不會出現(xiàn)這種問題了。

2 項(xiàng)目坐標(biāo)

Maven通過特定的標(biāo)識來定義項(xiàng)目名稱,這樣既可以唯一的匹配其他的jar包,也可以通過發(fā)布,使別人能使用自己的發(fā)布產(chǎn)品。這個標(biāo)識就被叫做坐標(biāo),長的其實(shí)很普通,就是簡單的xml而已:

1com.test2maventest30.0.1-SNAPSHOT4jar56maventest7http://maven.apache.org

groupId:所述的項(xiàng)目名稱,由于有的項(xiàng)目并不是一個jar包構(gòu)成的,而是由很多的jar包組成的。因此這個groupId就是整個項(xiàng)目的名稱。

artifactId:包的名稱。

version:版本號。

packaging:包的類型,一般都是jar,也可以是war之類的。如果不填,默認(rèn)就是jar。

nameurl,一個是名稱,一個是maven的地址。主要就是上面的幾個參數(shù)。

當(dāng)想要依賴什么jar的時候就可以通過下面的方式依賴:

123junit4junit53.8.16test78

各個屬性的內(nèi)容基本上都是一樣的。

這里要注意的是jar包的命名規(guī)則:

artifactId-version[-classifier].packaging

比如上面的pom.xml生成的jar包名字就是:maventest-0.0.1-SNAPSHOT.jar。

這里的classifier是可選的,但是有的項(xiàng)目可能還需要導(dǎo)出附屬的一些文件,如javadoc,source等等,那么這個地方就需要配置一個字符串。一般都是JDKXXX之類的。

3 測試驅(qū)動

Maven是測試驅(qū)動的開發(fā)思路,因此工程創(chuàng)建初期,就包含兩個文件夾,main和test。一個用于放置開發(fā)的java文件,一個用于寫test單元測試。這樣每次開發(fā)的時候,提前設(shè)計(jì)單元測試,就能幫助減少BUG。

如何在eclipse中使用maven

我使用的eclipse有自帶的maven插件,因此直接創(chuàng)建就可以了。這里就不介紹如何安裝maven了。下面介紹一下maven工程的創(chuàng)建:

1 如何創(chuàng)建maven工程:

直接點(diǎn)擊新建,在里面可以找到Maven選項(xiàng)卡,點(diǎn)擊Maven Project創(chuàng)建Maven工程

2 選擇默認(rèn)的工程位置

3 創(chuàng)建工程,紅色是創(chuàng)建普通的maven工程的。粉色是創(chuàng)建web工程的。

6 填寫相關(guān)的groupId artifactId version等信息

點(diǎn)擊完成就創(chuàng)建好了一個簡單的maven工程。

maven工程是什么樣子的?

maven的工程一般都是如下的結(jié)構(gòu):

first_maven? |-- pom.xml? `-- src? ? ? |-- main? ? ? |? |-- java? ? ? |? |? `-- com? ? ? |? |? ? ? `-- test? ? ? |? |? ? ? ? ? `-- App.java? ? ? |? `-- resources? ? ? |? ? ? `-- META-INF? ? ? |? ? ? ? ? `-- application.properties? ? ? `-- test? ? ? ? ? `-- java? ? ? ? ? ? ? `-- com? ? ? ? ? ? ? ? ? `-- test? ? ? ? ? ? ? ? ? ? ? `-- AppTest.java

pom.xml:用于定義或者添加jar包的依賴

src-main:用于存放java源文件

src-test:用于存放測試用例。

也許工程下還會出現(xiàn)target文件夾,這個是用來生成對應(yīng)的class文件或發(fā)布的jar包。

Eclipse中maven常用的命令

點(diǎn)擊Run As就可以發(fā)現(xiàn)幾個Maven的命令:

Maven Build:

這個命令用于編譯Maven工程,執(zhí)行命令后會在target文件夾中的classes中生成對應(yīng)的class文件。

Maven Clean:

刪除target文件夾,即刪除生成的package包以及class等文件。

Maven Test:

先自動進(jìn)行編譯,在運(yùn)行所有的測試用例。

Maven install:

發(fā)布生成對應(yīng)的package包。

注意:

留意上面的命令的作用,build和test都會生成相應(yīng)的class文件。也就是說,當(dāng)你新建一個maven工程,或者clean一個maven工程后,如果沒有使用這兩個命令,直接針對類進(jìn)行測試,會跑出java.class.notfound的錯誤。因?yàn)榇藭r還沒有編譯生成class文件,如果有朋友發(fā)現(xiàn)這個問題注意一下就好了。(該部分只針對舊版本,新版本如maven3.3是可以自動編譯的)

只有使用了上面的兩個命令后,才能針對某個類進(jìn)行單元測試。

轉(zhuǎn)自:http://www.cnblogs.com/xing901022/p/4170248.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容