上一篇已經講到了Maven的基本命令,今天我們就來小試牛刀一把.
此前,我們可以用Eclispe創建一個小的Java工程,本人創建了一個能輸出"Hello!Maven!"的工程,它只有一個類,一個函數,不用猜你也能想到里面寫的什么.
指的一提的是它的目錄結構,下面是這個工程目錄結構的截圖:

為什么要在src底下放兩層目錄呢,一會將見分曉.
接下來,我們使用Maven創建一個HelloMaven的Maven項目,打開cmd窗口,轉入你的Maven工程目錄(本人機器上是C:\tmp),然后輸入如下的命令:
mvn archetype:create -DgroupId=com.sitinspring -DartifactId=HelloMaven
其中,com.sitinspring告知了Maven工程的代碼根目錄,而HelloMaven是工程名.這段命令指示Maven創建一個HelloMaven的工程,它的代碼根目錄是com.sitinspring.命令運行后將生成一個名為HelloMaven的目錄,其中有主目錄,測試目錄和工程文件pom.xml.
接到你的命令,Maven開始工作了,它輸出了一大段文字,見下圖:


你將得到一個名叫HelloMaven的目錄,如下圖:

在HelloMaven目錄下,還將生成一個pom.xml的文件,它就是Maven生成的工程文件.暫時你不需要關心其具體內容.
因為接下來還有任務:把Eclispe工程中的Inlet.java文件放入C:\tmp\HelloMaven\src\main\java\com\sitinspring中.
然后打開cmd窗口,進入C:\tmp\HelloMaven目錄.執行命令:
mvn package
你將看到Maven再次輸出一堆信息.如下圖:

其后C:\tmp\HelloMaven的目錄結構如下圖:

在target目錄下,有classes目錄.這是生成的class文件;根目錄下還生成了我們的目標文件HelloMaven-1.0-SNAPSHOT.jar,它就是打包后的jar.
測試一下,我們打開cmd窗口,進入目錄 C:\tmp\HelloMaven\target,然后執行命令:
java -cp HelloMaven-1.0-SNAPSHOT.jar com.sitinspring.Inlet,你將看到Hello!Maven!被輸出出來.如下圖.

現在為止,我們未曾寫一句代碼就得到了項目的jar文件,你可以拿自己以前的工程來試試mvn package的功能了.
如果是Swing程序的話效果更好.下圖是Swing程序包執行的效果.

本文例子下載一:
http://www.tkk7.com/Files/sitinspring/MavenPakcageExample01.zip本文例子下載二:
http://www.tkk7.com/Files/sitinspring/MavenPakcageExample02.zip(這個例子就是上圖輸出的Swing程序,但Src路徑要深一些,所以DgroupId也不同,具體寫法請大家揣摩)
附錄:
Maven工程的目錄結構:
Maven project root |
|
|
pom.xml |
Maven2 project file |
Maven2項目文件 |
src/ |
|
|
main/ |
project main directory |
項目主體目錄 |
java |
source code directory |
原碼目錄 |
resources |
the directory of resource for source code |
原碼所需資源 |
filters |
the directory of filtering resource files |
原碼所需資源文件過濾 |
assembly |
Assembly descriptors |
|
config |
the directory of configuration file |
配置文件目錄 |
test |
|
|
java |
test source code directory |
測試原碼目錄 |
resources |
the directory of resource for the test source code |
測試原碼所需資源 |
filters |
the directory of filtering test resource files |
測試原碼所需資源文件過濾 |
site |
the directory of site resource |
與site相關的資源目錄 |
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 輸出目錄 |