上一篇已經(jīng)講到了Maven的基本命令,今天我們就來(lái)小試牛刀一把.
此前,我們可以用Eclispe創(chuàng)建一個(gè)小的Java工程,本人創(chuàng)建了一個(gè)能輸出"Hello!Maven!"的工程,它只有一個(gè)類,一個(gè)函數(shù),不用猜你也能想到里面寫(xiě)的什么.
指的一提的是它的目錄結(jié)構(gòu),下面是這個(gè)工程目錄結(jié)構(gòu)的截圖:
為什么要在src底下放兩層目錄呢,一會(huì)將見(jiàn)分曉.
接下來(lái),我們使用Maven創(chuàng)建一個(gè)HelloMaven的Maven項(xiàng)目,打開(kāi)cmd窗口,轉(zhuǎn)入你的Maven工程目錄(本人機(jī)器上是C:\tmp),然后輸入如下的命令:
mvn archetype:create -DgroupId=com.sitinspring -DartifactId=HelloMaven
其中,com.sitinspring告知了Maven工程的代碼根目錄,而HelloMaven是工程名.這段命令指示Maven創(chuàng)建一個(gè)HelloMaven的工程,它的代碼根目錄是com.sitinspring.命令運(yùn)行后將生成一個(gè)名為HelloMaven的目錄,其中有主目錄,測(cè)試目錄和工程文件pom.xml.
接到你的命令,Maven開(kāi)始工作了,它輸出了一大段文字,見(jiàn)下圖:
你將得到一個(gè)名叫HelloMaven的目錄,如下圖:
在HelloMaven目錄下,還將生成一個(gè)pom.xml的文件,它就是Maven生成的工程文件.暫時(shí)你不需要關(guān)心其具體內(nèi)容.
因?yàn)榻酉聛?lái)還有任務(wù):把Eclispe工程中的Inlet.java文件放入C:\tmp\HelloMaven\src\main\java\com\sitinspring中.
然后打開(kāi)cmd窗口,進(jìn)入C:\tmp\HelloMaven目錄.執(zhí)行命令:
mvn package
你將看到Maven再次輸出一堆信息.如下圖:
其后C:\tmp\HelloMaven的目錄結(jié)構(gòu)如下圖:
在target目錄下,有classes目錄.這是生成的class文件;根目錄下還生成了我們的目標(biāo)文件HelloMaven-1.0-SNAPSHOT.jar,它就是打包后的jar.
測(cè)試一下,我們打開(kāi)cmd窗口,進(jìn)入目錄 C:\tmp\HelloMaven\target,然后執(zhí)行命令:
java -cp HelloMaven-1.0-SNAPSHOT.jar com.sitinspring.Inlet,你將看到Hello!Maven!被輸出出來(lái).如下圖.
現(xiàn)在為止,我們未曾寫(xiě)一句代碼就得到了項(xiàng)目的jar文件,你可以拿自己以前的工程來(lái)試試mvn package的功能了.
如果是Swing程序的話效果更好.下圖是Swing程序包執(zhí)行的效果.
本文例子下載一:
http://www.blogjava.net/Files/sitinspring/MavenPakcageExample01.zip本文例子下載二:
http://www.blogjava.net/Files/sitinspring/MavenPakcageExample02.zip(這個(gè)例子就是上圖輸出的Swing程序,但Src路徑要深一些,所以DgroupId也不同,具體寫(xiě)法請(qǐng)大家揣摩)
附錄:
Maven工程的目錄結(jié)構(gòu):
Maven project root
pom.xml Maven2 project file Maven2項(xiàng)目文件
src/
main/ project main directory 項(xiàng)目主體目錄
java source code directory 原碼目錄
resources the directory of resource for source code 原碼所需資源
filters the directory of filtering resource files 原碼所需資源文件過(guò)濾
assembly Assembly descriptors
config the directory of configuration file 配置文件目錄
test
java test source code directory 測(cè)試原碼目錄
resources the directory of resource for the test source code 測(cè)試原碼所需資源
filters the directory of filtering test resource files 測(cè)試原碼所需資源文件過(guò)濾
site the directory of site resource 與site相關(guān)的資源目錄
target the directory for output 輸出目錄
classes the directory for output classes class 目錄
test-classes the directory for output test classes test class 目錄
site the directory for output site and reports site 輸出目錄