参考:
http://www.cnblogs.com/quanyongan/category/471332.html (maven 随笔系列)
http://m.blog.csdn.net/blog/index?username=u012562943&categoryid=6037062 (maven 学习总结)
http://canann.iteye.com/blog/2095951 (Maven最佳实践:划分模块)
1. Maven的概念
Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。
简单来说,Maven可以帮助我们更有效的管理项目。
下载Maven,需要访问:maven.apache.org
Maven3.3版本需要JDK1.7以上的支持。
下载之后,解压查看相应的目录:
查看bin目录:(bin目录包含mvn的运行脚本)
bin目录包含mvn的运行脚本。在windows命令行中输入mvn,就会调用这个脚本。
m2.conf 这是一个配置文件。
查看boot目录:(boot目录包含一个类加载器的框架)
boot目录包含一个类加载器的框架,Maven是使用它来加载自己的类库。
查看conf目录:(conf是配置文件目录)
conf是配置文件目录,比如我们以后经常用到的setting.xml
lib目录下:(包含Maven平时所用到的类库,除了自身的,还包含第三方依赖的类库)
2. maven环境变量配置
环境变量分为用户变量和系统变量。
如果你的电脑是多人使用的,那么为了不影响他人,你就应该在用户变量中进行设置。(用户变量:属于电脑各个用户的变量。)
如果你的电脑是私人的,就可以在系统变量进行设置。(系统变量:所有电脑用户共用的变量。)
- M2_HOME:变量值设为maven安装目录;
- path:设置为%M2_HOME%\bin;
如何验证环境变量是否配置成功?
打开cmd命令提示符dos:输入mvn -v
如果可以查看到相关的版本信息,就说明环境变量配置成功。
注:
groupId的值就是项目的包名
artifactId的值就是模块名,这里一般建议使用项目名
version的值是版本名 一般是快照
使用maven构建的一个小例子:
1:使用maven约定的构建目录结构
2:按照约定的目录结构构建项目
3:编写简单的测试代码
4:配置pom配置文件
5:运行maven基本命令管理对应的小例子
6:根据命令的提示信息解决构建项目中犯的错误,并且理解每个命令实际做了那些具体的事情。
3. maven常见的构建命令
- mvn -v :查看Maven版本
- mvn compile:编译
- mvn test: 测试
- mvn package:打包
- mvn clean: 清除maven生成的target目录(target中存放的是项目经过编译的字节码文件和测试报告)
- mvn install:将生成的jar安装到本地仓库中
maven编译代码的流程:
1. 执行mvn compile 命令编译java代码文件
2. 如果发现代码中引用到了其他的包文件(jar包)
3. 首先回去核心配置文件pom.xml文件中去查找相应的配置依赖
4. 根据配置依赖先去本地的仓库中查找jar包资源
5. 如果本地不存在,则会再去联网到maven的中央仓库中查找
4. maven环境变量配置
创建目录骨架的方式有两种。
Maven为我们提供了archetype插件,用于创建符合Maven规定的目录骨架。
根据Maven规定,要在:
- mvn archetype:generate:运行命令后提示输入版本,groupId,artifactId,version,package
- mvn archetype:generate -DgroupId:组织名,公司域名反写+项目名 -DartifactId:项目名-模块名 -Dversion:版本 -Dpackage:包名。一次性创建。
5. maven坐标和仓库
- 坐标的概念:构件
Maven世界中唯一标识一个构件的标识,一般由groupId/artifactId/version三部分组成,另外,作者建议artifactId和项目名要一致,这样更清晰,也更容易查找。
- 仓库的概念:
放置各种依赖的地方。仓库分为两种:本地仓库和远程仓库。
本地仓库找不到我们需要的构件,它会去中央仓库查找,查找到之后就会下载到本地仓库中
C:\apache-maven-3.3.9\lib\maven-model-builder-3.3.9\org\apache\maven\model\pom-4.0.0.xml——Maven为我们提供的超级pom我们所有的pom都会记录这个pom这里记录的有全球的中央仓库 ,中央仓库中放置了几乎所有开源项目的资源——jar包。
- 镜像仓库:
Maven的中央服务器都是放置在国外的,有时我们不能访问外网,国内也有他的镜像仓库,这样就能更好的访问了。
apache-maven-3.3.9\conf\settings.xml这个文件中就配置着镜像的信息,可以配置国内的镜像文件的路径,这样就能更快更好的访问了。
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryId</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://my.repository.com/repo/path</url>
</mirror>
以上可以配置镜像仓库
- 更改仓库的位置:
maven从远程中央库下载的资源默认放在了C:\Users\Administrator\.m2\repository这个目录,为了安全性,一般不会选择放在c盘下可以修改本地仓库的目录,指定到更安全的目录下,另外,setting.xml这个文件也需要另存一份,这是为了更新版本的时候不用重新修改这个配置文件。
6. maven插件安装及创建maven项目
如果电脑安装的是eclipse4.0或者myeclipse,就不用再安装Maven插件了。
查看自己的eclipse是否安装插件:
eclipse 》》preferences ,查看是否有Maven选项。
eclipse默认运行在jre上,而maven插件需要jdk的支持。
步骤:
- 下载maven插件,解压放至eclipse的dropins中或在线更新(http://m2eclipse.sonatype.org/sites/m2e , m2e-extras为扩展 )
- 在eclipse.ini中添加jdk
-vm
C:\Program Files\Java\jdk1.7.0_75\bin\javaw.exe - 修改eclipse-选项中maven的maven目录和setting位置。
- 创建maven项目
- run as -->build as -->在goals中complile-->run
- 若报-Dmaven.multiModuleProjectDirectory 错误,则在选项-->java-->installed JRES中配置 -Dmaven.multiModuleProjectDirectory=$M2_HOME
7. maven生命周期及插件
- 完整的项目构建过程包括:
清理、编译、测试、打包、集成测试、验证、部署。
这几个步骤对应的都有插件来完成。
- Maven生命周期:clean、compile、test、package、install
- Maven的生命周期分为三个独立的生命周期(每一个生命周期有分为若干个阶段,其中defaul是最核心的一个):
- clean:清理项目
- default:构建项目
- site: 生成项目站点
- clean生命周期包含的阶段:
pre-clean : 执行清理前的工作
clean : 清理上一次构建生成的所有文件
post-clean : 执行清理后的文件 - default构建项目(最核心)
default生命周期包含的阶段比较多,比较常用的就是compile、test、package、install
- site生成项目站点:
- pre-site 在生成项目站点之前要完成的工作
- site 生成项目的站点文档
- post-site在生成项目站点后要完成的工作
- site-deploy发布生成的站点到服务器上
注意,Maven的生命周期对应的命令是顺序执行的,如果没有人为的顺序的一个个执行,那么Maven会默认的自动运行。
相关推荐
在Maven中,一个项目可以被分解为多个子项目,这些子项目共享相同的父 pom.xml 文件,这就是所谓的多模块项目。在`demo-parent`案例中,"parent"通常表示顶层的父模块,它定义了所有子模块共有的配置,如版本号、...
Spring 框架是Java企业级应用开发的核心,它提供了依赖注入(DI)和面向切面编程(AOP)等特性,便于实现松耦合和模块化设计。在本项目中,Spring 用于管理Bean的生命周期和依赖关系,同时可能也用于事务管理等核心...
"Maven-maven多模块项目搭建+SSM框架整合"的主题聚焦于使用Maven进行多模块项目结构的搭建,并整合Spring、Spring MVC和MyBatis(SSM)这三大主流Java Web框架。以下是关于这些知识点的详细阐述: 1. **Maven**:...
在"ssm+maven多模块项目搭建"中,我们将创建多个独立的模块,每个模块负责特定的功能,如:业务服务模块、数据访问模块、Web前端模块等。这样可以提高代码的可重用性和可扩展性,便于团队协作。 **步骤一**:创建父...
在本项目中,"创建Maven模块项目.docx"文档很可能是指导如何初始化Maven多模块项目,包括定义父POM和子模块POM,以及配置各个模块的依赖。而"打包web项目.docx"则可能详细介绍了如何使用Maven的war插件进行项目打包...
【标题】"maven多模块web项目"是一个基于Maven构建的复杂Web应用程序,它将项目分解为多个独立的模块,每个模块都有特定的功能或组件,这样可以提高代码的可维护性和可重用性。Maven是Apache软件基金会开发的一款...
这样的项目结构通常用于大型、复杂的企业级应用开发,因为它允许开发者将不同功能模块进行拆分,便于代码管理、团队协作和后期维护。 【Spring框架】是Java领域最流行的轻量级框架之一,它提供了一个全面的依赖注入...
本项目“maven springMVC4.1+easyUI整合(多模块项目)”正是这样一个实践,它巧妙地结合了Maven、Spring MVC 4.1和EasyUI,为开发Web应用提供了一个高效且结构清晰的框架。 **Maven** 是一个项目管理工具,用于...
【标题】:“(完整)maven多模块+springMVC+Mybatis(自动生成)+dubbo+Zookeeper” 涵盖的是一个基于Java的高级Web应用架构的集成方案,这个项目利用了一系列主流的技术框架来构建高效、可扩展的企业级应用。...
总之,"Springboot整合dubbo构建maven多模块项目"是一个典型的分布式系统开发实例,它展示了如何利用Spring Boot的便捷性和Dubbo的高性能特性来构建复杂的企业级应用。通过学习这个项目,开发者可以深入了解微服务...
【标题】:“maven多模块项目” 在Java开发中,Maven多模块项目是一种常见的组织方式,它将大型应用拆分为多个独立的模块,每个模块专注于特定的功能领域,便于管理和维护。这种架构模式有助于代码的复用、独立开发...
### 手把手构建Maven企业级应用(整合SSI框架) #### 概述 本文档旨在指导初学者如何利用Maven工具构建一个企业级的应用程序,并在此基础上整合SSI框架。Maven是一个项目管理和综合工具,主要用于Java项目的构建、...
本项目"maven3.2.1多模块ssh2"正是基于这种思想,使用了Maven 3.2.1作为构建工具,将应用程序划分为多个独立的模块,每个模块专注于特定的功能领域。SSH(Struts2、Spring、Hibernate)是Java开发中最流行的三大框架...
SSM(SpringMVC+Spring+Mybatis)是Java开发中的一个经典组合,常用于构建企业级Web应用。这个框架集合了Spring MVC作为控制层、Spring作为服务层和依赖注入容器,以及Mybatis作为持久层的数据访问框架。下面将详细...
5. 模块化项目结构:使用Maven的多模块项目结构,可以将大型项目拆分成多个小的、独立的子项目,每个子项目负责一部分功能,如服务层、DAO层、Web层等。这样可以提高代码的可读性和可维护性,便于团队协作。 6. ...
总之,Spring Boot结合Maven多模块项目组织方式,能有效提高大型项目的可读性和可维护性,是现代企业级应用开发的常见实践。通过合理的模块划分和依赖管理,可以使项目结构更清晰,便于扩展和升级。
在实际开发中,我们还需要考虑如何配置Maven的多模块项目,如何在POM文件中定义模块间的依赖关系,以及如何通过Maven的生命周期和插件来编译、测试和部署这些模块。对于SSH框架的集成,还需要配置相应的XML配置文件...
Maven的模块化设计允许大型项目被划分为多个小的、独立的模块,每个模块都有自己的`pom.xml`文件,用于管理其依赖和构建过程。这种设计有助于代码复用,提高开发效率,并使得复杂的项目结构变得清晰易懂。每个模块...