如何创建Maven项目

更新于:2022-11-24     浏览:26497 次  

Maven 是 Apache 组织下的一个跨平台的项目管理工具,它主要用来帮助实现项目的构建、测试、打包和部署。Maven 提供了标准的软件生命周期模型和构建模型,通过配置就能对项目进行全面的管理。它的跨平台性保证了在不同的操作系统上可以使用相同的命令来完成相应的任务。

Maven 将构建的过程抽象成一个个的生命周期过程,在不同的阶段使用不同的已实现插件来完成相应的实际工作,这种设计方法极大的避免了设计和脚本编码的重复,极大的实现了复用。

Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。Maven 也可被用于构建和管理各种项目,例如 C#,Ruby,Scala 和其他语言编写的项目。

Maven 提倡使用一个共同的标准目录结构,Maven 使用约定优于配置的原则,大家尽可能的遵守这样的目录结构。

Maven 标准项目目录示意图

Maven 提倡使用一个共同的标准目录结构,Maven 使用约定优于配置的原则,大家尽可能的遵守这样的目录结构。如下图所示:


Maven 标准项目目录详细说明

目录 作用
${basedir} 存放 pom.xml 和所有子目录
${basedir}/src/main/java 项目的 java 源代码所在的目录
${basedir}/src/main/resources 项目的资源文件所在的目录,例如:propert文件
${basedir}/src/test/java 测试代码所在的目录,例如:JUnit 代码
${basedir}/src/test/resources 测试相关的资源文件所在的目录
${basedir}/src/main/webapp/WEB-INF web 应用文件目录,web 项目的信息,比如存放 web.xml、本地图片、jsp 视图页面
${basedir}/target 打包输出目录
${basedir}/target/classes 编译输出目录
${basedir}/target/test-classes 测试编译输出目录

创建Maven项目

1、创建新项目

1、打开idea,在主菜单中选择File --> new -->project,创建新项目



2、选择SDK

在New Project窗口,选择Maven,在Project SDK的下拉列表中选择需要的JDK版本,勾选Create from archetype,选择maven项目,我们常用的就是普通项目(quickstart)和web项目(webapp),本次我们选择普通项目。



3、配置Groupld和ArifactId

Groupld:工程的唯一标志符,一般采用的就是域名倒置的写法比如com.jd.overseamid

ArifactId:项目名称

version:项目版本号



4、配置Maven、settings、repository

Maven:选择自己本地配置的Maven版本。

settings:指定settings.xml配置文件。(后面具体解释)

repository:设置本地仓库路径。(后面具体解释)



5、配置代码存放位置



6、工程目录

创建成功之后,我们简单看一下Maven的目录结构。Maven为开发者提供了缺省的标准目录模板,好的目录结构可以使开发人员更容易理解项目,为以后的维护工作也打下良好的基础。



7、pom文件

pom.xml主要描述了项目的maven坐标,依赖关系,开发者需要遵循的规则,缺陷管理系统,组织和licenses,以及其他所有的项目相关因素,是项目级别的配置文件。

我们创建的项目需要引入一些依赖的包,如果是需要引入公司内部的jar包,找开发要依赖坐标就可以了,如果是外部的依赖,可以在https://mvnrepository.com/ 这个网站进行查找,一般我们会选择最近更新,使用人数比较多的非beta版本。

8、settings文件

settings文件,一般存在与两个位置:

1.安装的地方:${M2_HOME}/conf/settings.xml

2.用户的目录:${user.home}/.m2/settings.xml

前者又被叫做全局配置,对操作系统的所有使用者生效;后者被称为用户配置,只对当前操作系统的使用者生效。如果两者都存在,它们的内容将被合并,并且用户范围的settings.xml会覆盖全局的settings.xml。 Maven安装后,用户目录下不会自动生成settings.xml,只有全局配置文件。如果需要创建用户范围的settings.xml,可以将安装路径下的settings复制到目录${user.home}/.m2/

Maven默认的settings.xml是一个包含了注释和例子的模板,可以快速的修改它来达到你的要求。 全局配置一旦更改,所有的用户都会受到影响,而且如果maven进行升级,所有的配置都会被清除,所以要提前复制和备份${M2_HOME}/conf/settings.xml文件,一般情况下不推荐配置全局的settings.xml。

9、仓库

settings文件中还有一个比较重要的配置,就是仓库的配置。

在传统的项目,jar是导入到项目中的,项目的jar包和代码是分开的,Maven的jar包存放在仓库里。仓库分为:本地仓库、远程仓库、私服。

本地仓库,顾名思义,就是Maven在本地存储构件的地方。这个路径是我们自己配置的,配置成自己存放jar包的路径。

远程仓库,中央仓库是默认的远程仓库,Maven在安装的时候,自带的就是中央仓库的配置,远程仓库的地址:http://repo.maven.apache.org/maven2。

私服:私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用。当Maven需要下载构件的时候,它从私服请求,如果私服上不存在该构件,则从外部的远程仓库下载。

私服的好处:

1、节省自己的外网带宽:减少重复请求造成的外网带宽消

2、部署第三方构件:有些构件无法从外部仓库获得的时候,我们可以把这些构件部署到内部仓库(私服)中,供内部maven项目使用

3、提高稳定性,增强控制:Internet不稳定的时候,maven构建也会变的不稳定,一些私服软件还提供了其他的功能

我们更新jar包时,先从本地仓库去找,本地没有的话就去私服上找,私服也没有的话,去中央仓库去找。