Maven 教程
序:几次对Maven 的学习,都因为各种原因 而中途切断了,再一次学习的时候,又不得不重新开始,结果发现 又不记得步骤 又找不到对应的文档。别人写的再好,终究比不过自己亲手实践的得出的结果更值得相信!
在 windows 环境上的 安装与实例实践 操作步骤 和 结果记录如下:
一、Maven 安装
1、Maven 的下载
下载地址 http://maven.apache.org/download.cgi
选择对应的版本下载,这里 我使用 apache-maven-3.3.3-bin.zip,将其解压放到对应安装路径下即可
配置 对应的环境变量: MAVEN_HOME = 安装路径
Path 中新增 %MAVEN_HOME%/bin
2、安装对应的JDK
Maven 3.3 需要 jdk 1.7 及以上版本。
配置 对应的环境变量: JAVA_HOME = 安装路径
Path 中新增 %JAVA_HOME %/bin
3、修改配置文件
%MAVEN_HOME%/conf/setting.xml 配置文件中 localRepository 存放了 maven 所依赖的 jar,默认 路径是 ${user.home}/.m2/repository ,即用户家目录下,建议修改到其他位置,如下面,我的配置:
二、Maven 运行项目
1、检测mvn 是否安装成功: mvn -v
如果你看到类似上面的输出的话,就说明安装成功了。
2、建立一个hello 项目
切换到你希望项目建立的目录: cd F:softwareInstallLocationeclipse_workspace
新建项目:mvn archetype:generate -DgroupId=co
m.mycompany.helloworld -DartifactId=helloworld -Dpackage=com.mycompany.helloworl
d -Dversion=1.0-SNAPSHOT
说明:第一次 运行 Maven 可能比较耗时间,因为需要 下载 maven 需要的相关 jar 包,第二次运行的时候 就不会需要下载了的。在命令执行的过程中,可能有几处需要输入,直接按回车就好,这样就完成项目的建立。(详情见apache Maven 入门篇(上) )
archetype:generate 目标会列出一系列的 archetype 让你选择。 Archetype 可以理解成项目的模型。 Maven 为我们提供了很多种的项目模型,包括从简单的 Swing 到复杂的 Web 应用。我们选择默认的 maven-archetype-quickstart
3、在项目路径下,我们可以看到多了一个工程
maven 的 archetype 插件建立了一个 helloworld 目录,这个名字来自 artifactId 。在这个目录下面,有一个 Project Object Model(POM) 文件 pom.xml 。这个文件用于描述项目,配置插件和管理依赖关系。
源代码和资源文件放在 src/main 下面,而测试代码和资源放在 src/test 下面。
Maven 已经为我们建立了一个 App.java 文件:
4、构建 和运行程序
命令如下:
进入当期项目: cd helloworld
构建项目: mvn package
运行 : java -cp target/helloworld-1.0-SNAPSHOT.jar com.mycompany.helloworld.App
编辑并测试: mvn test
说明:
maven 在 helloworld 下面建立了一个新的目录 target/ ,构建打包后的 jar 文件 helloworld-1.0-SNAPSHOT.jar 就存放在这个目录下。编译后的 class 文件放在 target/classes/ 目录下面,测试 class 文件放在 target/test-classes/ 目录下面。
三、Maven 常用命令
创建一个简单的Java工程:mvn archetype:create -DgroupId=com.mycompany.example -DartifactId=Example
创 建一个java的web工程:mvn archetype:create -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=com.mycompany.app -DartifactId=my-webapp
打包:mvn package
编译:mvn compile
编译测试程序:mvn test-compile
清空:mvn clean
运行测试:mvn test
生成站点目录: mvn site
生成站点目录并发布:mvn site-deploy
安装当前工程的输出文件到本地仓库: mvn install
安 装指定文件到本地仓库:mvn install:install-file -DgroupId=<groupId> -DartifactId=<artifactId> -Dversion=1.0.0 -Dpackaging=jar -Dfile=<myfile.jar>
查看实际pom信息: mvn help:effective-pom
分析项目的依赖信息:mvn dependency:analyze 或 mvn dependency:tree
跳过测试运行maven任务: mvn -Dmaven.test.skip=true XXX
生成eclipse项目文件: mvn eclipse:eclipse
查看帮助信息:mvn help:help 或 mvn help:help -Ddetail=true
查看插件的帮助信息:mvn <plug-in>:help,比如:mvn dependency:help 或 mvn ant:help 等等。
四、Maven的基本功能
构建:比如生成class、jar、war或者ear文件
生成文档:比如生成javadoc、网站文档
生成报告:比如junit测试报告
生成依赖类库:生成文档,说明项目多其他软件的依赖
有关SCM:SCM(Software Configuration Management),软件配置管理,比如版本控制,比如bug管理等等
发布:生成供发布的分发包,比如生成Struts2的分发包,供提交给用户使用
部署:比如,web应用程序,自动部署到指定的服务器上
五、pom.xml文件中的标签元素说明:
·project 这是所有pom.xml的顶层
·modelVersion 这个元素指出POM现在使用的对象模型版本,除非开发者强制性的为了
确保稳定性而进行的必要改变、一般都是不发生变化的。
·groupId 这个就是指出被被创建项目的唯一标识、通常使用域名。
·artifactId 这个元素指出了生成项目时的唯一主要的的名字、通常这个名字被作为
Jar的名字。
·packaging 打包类型 (e.g. JAR, WAR, EAR, etc.). 这个不仅仅意味着打包的产品类型
也指出了一个建造过程中的详细生命周期。
·version 这个元素指出在项目被生成的时候的版本,通常你所看到的
SNAPSHOT指的是开发进行的状态
·name 这个元素指出项目相识的名字、通常被用在Maven生成的文档中
·url 这个元素指出在哪里可以找到这个项目的站点、通常也被用到Maven的
文档中。
·description 这个元素为你的项目提供一个基本的描述,通常被用在Maven生成的文
档中
六、资料参考
3、见官方网站;
The 5 minute test,官方简易入门文档;
Getting Started Tutorial,官方入门文档;
Build Cookbook,官方的cookbook;
POM Reference,POM文件的设置参考
Settings Reference ,settings文件的设置参考