Maven是Ant的替代工具,具体功能不多说,可以通过下面的具体案例理解使用。
下载安装
- 首先去http://maven.apache.org/下载maven。
- 我的是mac,将其解压到~/tools/下面,目录结构是这样:
- 接着给系统增加环境变量:$vi ~/.bash_profile
M2_HOME=/Users/xxx/tools/apache-maven-3.1.0 PATH=$M2_HOME:$PATH
注意更新环境变量:source .bash_profile。export M2_HOME export PATH
- 运行:mvn --version,显示下载后的maven版本号说明安装成功。
- 运行:mvn help:system,显示环境变量,并且更新repository文件。
- 默认的settings.xml文件位于安装目录的conf下面,并且repository位于~/.m2/repository目录。
与MyEclipse集成
- 首先我们修改MyEclipse对于Maven的配置:
- 接着需要修改Maven的配置,注意这里我们不要自己添加用户的配置文件:
- ok,接下来可以创建maven项目了。
创建Maven工程
- 在菜单中选择File->New,创建一个maven project;
- 选择模板,对于普通java项目选择org.apache.maven.archetypes中的quickstart;对于web项目选择webapp就行;
- 这里我们选择quickstart新建一个console项目,之后next并输入项目信息;
- 注意如果有"Could not resolve archetype org.apache.maven.archetypes:maven-archetype-quickstart:RELEASE from any of the configured repositories.",则需要先去这种地址下载jar包:http://mirrors.ibiblio.org/maven2/org/apache/maven/archetypes/maven-archetype-quickstart/1.1/,再去运行命令:
注意对于不同的jar,groupId、artifactId等等参数均需要修改。mvn install:install-file -DgroupId=org.apache.maven.archetypes -DartifactId=maven-archetype-quickstart -Dversion=1.1 -Dpackaging=jar -Dfile=maven-archetype-quickstart-1.1.jar
- 我在Windows上遇到过pom.xml错误:"Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-compiler-plugin:2.3.2:testCompile (execution: default-testCompile, phase: test-compile)",还是去Preference->Maven4MyEclipse->User Settings->Update Settings解决的问题,而且再次新建Maven Project也没有同样的现象。
- 项目生成成功,大致结构如下(我选择的quickstart类型项目):
- 我们看一下pom.xml文件内容:
对xml文件内容的分析如下:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.freesoft.mavenconsoleapp</groupId> <artifactId>test01</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>test01</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
- project:pom.xml文件中的顶层元素;
- modelVersion:指明POM使用的对象模型的版本。这个值很少改动。
- groupId:指明创建项目的组织或者小组的唯一标识。GroupId是项目的关键标识,典型的,此标识以组织的完全限定名来定义。比如,org.apache.maven.plugins是所有Maven插件项目指定的groupId。
- artifactId:指明此项目产生的主要产品的基本名称。项目的主要产品通常为一个JAR文件。第二,象源代码包通常使用artifactId作为最后名称的一部分。典型的产品名称使用这个格式: <artifactId>- <version>. <extension>(比如:myapp-1.0.jar)。
- version:项目产品的版本号。Maven帮助你管理版本,可以经常看到SNAPSHOT这个版本,表明项目处于开发阶段。
- name:项目的显示名称,通常用于maven产生的文档中。
- url:指定项目站点,通常用于maven产生的文档中。
- description:描述此项目,通常用于maven产生的文档中。
项目中我们最需要关注的是groupId、artifactId、version这些内容。 - 接着右键工程,选择Run As->Maven build...,
- 然后选择Goals,选择jar,并且打包:
- Run,去output目录查看输出内容:test01-0.0.1-SNAPSHOT.jar。
- 这个jar中没有指定启动class,所以运行需要:java -cp test01-0.0.1-SNAPSHOT.jar com.freesoft.mavenconsoleapp.test01.App
- 如果需要清理,可以运行clean;如果需要运行JUnit测试,可以直接运行test;
- 至此,整个项目完成。