Maven的介绍和项目的搭建配置

本文详细介绍Maven的基础概念、安装配置步骤、常用命令及IDEA集成方法,并解释如何使用Maven坐标进行依赖管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、maven的简介

maven在日常开发中非常常见,以下是maven的市场占比:

 maven官网:Maven – Welcome to Apache Maven

Apache Maven是一个软件项目管理和理解工具。基于项目对象模型(POM)的概念,Maven可以从一个中央信息中管理项目的构建、报告和文档。

仓库分类:

本地仓库:主机上的一个文件夹(目录);

中央仓库:由maven团队进行开发维护全球唯一的仓库(https://repo1.maven.apache.org/maven2

远程仓库(私服):一般由公司团队搭建的私有仓库;

当项目中使用坐标引入相应的jar包后,首先查找本地仓库是否有,

  • 如果有,则在项目中maven自动引用;
  • 如果没有,就上中央仓库或者私服仓库进行下载到本地仓库然后进行使用;

maven是专门来管理和构建Java项目的工具,它的主要功能有:

1.提供了一套标准化的项目结构;

在不同工具中创建的Java项目结构不同,从一个工具迁移项目时会因为项目的结构不一样而导致出现错误,maven就统一的项目的结构使其结构统一,便于项目的管理。

2.提供了一套标准化的构建流程(编译、测试、打包、发布......);

3.maven提供了一套依赖管理机制;

依赖管理你项目所依赖的第三方资源(jar包、插件)。

依赖于jar完成项目相应的功能,比如JDBC.jar包,Junit.jar等等。

 

 二、maven的安装与配置

点击 Maven – Welcome to Apache Maven进入maven主页,知道download,

2.选择二进制zip存档进行下载;

 3.解压zip到你的指定目录;

 4.maven环境配置

  • 环境变量添加MAVEN_HOME环境变量, 变量值写入maven的安装目录E:\maven\apache-maven-3.8.6(这是我的目录);

  •      在系统变量编辑path中新建一个 %MAVEN_HOME%\bin

  •  在cmd中使用命令mvn -version进行验证是否配置成功;

 5.配置本地仓库;

找到conf目录中的setting文件,打开,

找到 注释的下面代码,然后复制到非注释区;

<localRepository>/path/to/local/repo</localRepository>

 在你的文件夹中新建一个目录(文件夹),将文件夹的路径复制在代码中;

默认/path/to/local/repo这个路径其实是在我们c盘下的.m2文件夹下,由于磁盘空间原因我们需要将其进行修改;

 保存就可以了;

6.私服配置(maven的alibaba私服仓库配置)

修改maven文件夹下的conf中的 setting.xml中的<mirrors>标签,为其添加如下子标签;

      <mirror>
            <id>nexus-aliyun</id>
            <mirrorOf>central</mirrorOf>
            <name>Nexus aliyun</name>
            <url>https://maven.aliyun.com/repository/public</url>
        </mirror>

然后进行保存就可以了。

三、maven的常用命令

1.maven的生命周期

  • maven构建项目生命周期描述的是一次构建过程经历多少个时间
  • maven对构建项目的生命周期分为3套
  1. clean:清理工作
  2. default:核心工作,例如编译、测试、打包、安装等
  3. site:产生报告、发布站点(不长使用)

 default 构建生命周期:
validate(校验) 校验项目是否正确并且所有必要的信息可以完成项目的构建过程, 
initialize(初始化) 初始化构建状态,比如设置属性值, 
generate-sources(生成源代码) 生成包含在编译阶段中的任何源代码。 
. process-sources(处理源代码) 处理源代码,比如说,过滤任意值。 
generate-resources(生成资源文件) 生成将会包含在项目包中的资源文件。 
process-resources(处理资源文件) 复制和处理资源到目标目录,为打包阶段最好准备。 
compile(编译) 编译项目的源代码。 
process-classes(处理类文件) 处理编译生成的文件,比如说对Java class文件做字节码改善优化。 
generate-test-sources(生成测试源代码) 生成包含在编译阶段中的任何测试源代码。 
process-test-sources(处理测试源代码) 处理测试源代码,比如说,过滤任意值。 
generate-test-resources(生成测试资源文件) 为测试创建资源文件。 
process-test-resources(处理测试资源文件) 复制和处理测试资源到目标目录。 
test-compile(编译测试源码) 编译测试源代码到测试目标目录 
. process-test-classes(处理测试类文件) 处理测试源码编译生成的文件。 
test(测试) 使用合适的单元测试框架运行测试(Juint是其中之一)。 
prepare-package(准备打包) 在实际打包之前,执行任何的必要的操作为打包,做准备。 
package(打包) 将编译后的代码打包成可分发格式的文件,比如JAR、WAR或者EAR文件。 
pre-integration-test(集成测试前) 在执行集成测试前进行必要的动作。比如说,搭建需要的环境。 
integration-test(集成测试) 处理和部署项目到可以运行集成测试环境中。 
post-integration-test(集成测试后) 在执行集成测试完成后进行必要的动作。比如说,清理集成测试环境。 
verify (验证) 运行任意的检查来验证项目包,有效目达到质量标准。 
install(安装) 安装项目包,到本地仓库,这样项目包,可以用作其他本地项目的依赖, 
deploy(部署) 将最终的项目包,复制到远程仓库中与其他开发者和项目共享,

四、IDEA中配置maven

1.在IDEA中的settings中查找maven,并将maven的安装路径和settings文件路径进行配置;

2.maven坐标详解

  • maven中的坐标是资源的唯一标识;
  • 使用坐标来定义项目或引入项目中所需要的依赖;
  • maven坐标的主要组成:
  1. groupid:定义当前maven项目隶属组织名称(通常是域名反写)
  2. artifactid:定义当前项目maven名称(通常是模块名称order-service)
  3. version:定义当前项目版本号
<groupId>org.example</groupId>
<artifactId>mavendemo1</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

3.创建maven项目(module创建)

填写module名称以及想要目录;选择archetype;

关于archetype的说明如下:

maven提供的41个骨架原型分别是:

1: appfuse-basic-jsf (创建一个基于Hibernate,Spring和JSF的Web应用程序的原型) 
2: appfuse-basic-spring(创建一个基于Hibernate,Spring和Spring MVC的Web应用程序的原型) 
3: appfuse-basic-struts(创建一个基于Hibernate,Spring和Struts 2的Web应用程序的原型) 
4: appfuse-basic-tapestry(创建一个基于Hibernate,Spring 和 Tapestry 4的Web应用程序的原型) 
5: appfuse-core(创建一个基于Hibernate,Spring 和 XFire的jar应用程序的原型) 
6: appfuse-modular-jsf(创建一个基于Hibernate,Spring和JSF的模块化应用原型) 
7: appfuse-modular-spring(创建一个基于Hibernate, Spring 和 Spring MVC 的模块化应用原型) 
8: appfuse-modular-struts(创建一个基于Hibernate, Spring 和 Struts 2 的模块化应用原型) 
9: appfuse-modular-tapestry (创建一个基于 Hibernate, Spring 和 Tapestry 4 的模块化应用原型) 
10: maven-archetype-j2ee-simple(一个简单的J2EE的Java应用程序) 
11: maven-archetype-marmalade-mojo(一个Maven的 插件开发项目 using marmalade) 
12: maven-archetype-mojo(一个Maven的Java插件开发项目) 
13: maven-archetype-portlet(一个简单的portlet应用程序) 
14: maven-archetype-profiles() 
15:maven-archetype-quickstart() 
16: maven-archetype-site-simple(简单的网站生成项目) 
17: maven-archetype-site(更复杂的网站项目) 
18:maven-archetype-webapp(一个简单的Java Web应用程序) 
19: jini-service-archetype(Archetype for Jini service project creation) 
20: softeu-archetype-seam(JSF+Facelets+Seam Archetype) 
21: softeu-archetype-seam-simple(JSF+Facelets+Seam (无残留) 原型) 
22: softeu-archetype-jsf(JSF+Facelets 原型) 
23: jpa-maven-archetype(JPA 应用程序) 
24: spring-osgi-bundle-archetype(Spring-OSGi 原型) 
25: confluence-plugin-archetype(Atlassian 聚合插件原型) 
26: jira-plugin-archetype(Atlassian JIRA 插件原型) 
27: maven-archetype-har(Hibernate 存档) 
28: maven-archetype-sar(JBoss 服务存档) 
29: wicket-archetype-quickstart(一个简单的Apache Wicket的项目) 
30: scala-archetype-simple(一个简单的scala的项目) 
31: lift-archetype-blank(一个 blank/empty liftweb 项目) 
32: lift-archetype-basic(基本(liftweb)项目) 
33: cocoon-22-archetype-block-plain([http://cocoapacorg2/maven-plugins/]) 
34: cocoon-22-archetype-block([http://cocoapacorg2/maven-plugins/]) 
35:cocoon-22-archetype-webapp([http://cocoapacorg2/maven-plugins/]) 
36: myfaces-archetype-helloworld(使用MyFaces的一个简单的原型) 
37: myfaces-archetype-helloworld-facelets(一个使用MyFaces和Facelets的简单原型) 
38: myfaces-archetype-trinidad(一个使用MyFaces和Trinidad的简单原型) 
39: myfaces-archetype-jsfcomponents(一种使用MyFaces创建定制JSF组件的简单的原型) 
40: gmaven-archetype-basic(Groovy的基本原型) 
41: gmaven-archetype-mojo(Groovy mojo 原型)

4.快速导入依赖

Alt + insert 点击dependency,然后进行搜索自己想要导入的依赖;

 5.依赖范围

通过设置坐标的依赖范围(scope标签),可以设置相应jar包的作用范围:编译环境、测试环境、运行环境;

默认<scope>标签是compile 

书写不易,请大家指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Allengan@wow

前人栽树,后人乘凉

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值