maven的操作有两种方式,一种是通过mvn命令行命令,一种是使用maven的eclipse插件。因为使用eclipse的maven插件操作起来比较容易,这里就只介绍使用mvn命令行的操作。
5.1 maven的配置文件
maven的主执行程序为mvn.bat,linux下为mvn.sh,这两个程序都很简单,它们的共同用途就是收集一些参数,然后用 java.exe来运行maven的Main函数。maven同样需要有配置文件,名字叫做settings.xml,它放在两个地方,一个是maven 安装目录的conf目录下,对所有使用该maven的用户都起作用,我们称为主配置文件,另外一个放在 %USERPROFILE%/.m2/settings.xml下,我们成为用户配置文件,只对当前用户有效,且可以覆盖主配置文件的参数内容。还有就是项目级别的配置信息了,它存放在每一个maven管理的项目目录下,叫pom.xml,主要用于配置项目相关的一些内容,当然,如果有必要,用户也可以在 pom中写一些配置,覆盖住配置文件和用户配置文件的设置参数内容。
一般来说,settings文件配置的是比如repository库路径之类的全局信息,具体可以参考官方网站的文章 。
5.2 创建新工程
要创建一个新的maven工程,我们需要给我们的工程指定几个必要的要素,就是maven产品坐标的几个要素:groupId, artifactId,如果愿意,你也可以指定version和package名称。我们先看一个简单的创建命令:
d:\work\temp>mvn archetype:create-DgroupId=com.abc -DartifactId=product1-DarchetypeArtifactId=maven-archetype-webapp
首先看这里的命令行参数的传递结构,怪异的 -D参数=值的方式是 java.exe 要求的方式。这个命令创建一个web工程,目录结构是一个标准的maven结构,如下:
D:. └─mywebapp │ pom.xml │ └─src └─main ├─resources └─webapp │ index.jsp │ └─WEB-INF web.xml
|
大家要注意,这里目录结构的布局实际上是由参数 archetype ArtifactId 来决定的,因为这里传入的是 maven-archetype-webapp 如果我们传入其他的就会创建不同的结构,默认值为 maven-archetype-quickstart ,有兴趣的读者可以参考更详细的列表 ,我把部分常用的列表在这里:
Artifact Group Version RepositoryDescription
maven-archetype-j2ee-simpleorg.apache.maven.archetypes A simpleJ2EE Java application
maven-archetype-marmalade-mojoorg.apache.maven.archetypes A Mavenplugin development project using marmalade
maven-archetype-pluginorg.apache.maven.archetypes A MavenJava plugin development project
maven-archetype-portletorg.apache.maven.archetypes A simpleportlet application
maven-archetype-profilesorg.apache.maven.archetypes
maven-archetype-quickstartorg.apache.maven.archetypes
maven-archetype-simpleorg.apache.maven.archetypes
maven-archetype-site-simpleorg.apache.maven.archetypes A simplesite generation project
maven-archetype-siteorg.apache.maven.archetypes A morecomplex site project
maven-archetype-webapporg.apache.maven.archetypes A simpleJava web appli