MAVEN01_概述+核心概念+IDEA中如何使用(创建项目)(一)

本文涉及的产品
.cn 域名,1个 12个月
简介: ①. Maven 简介①. Maven概述②. maven的安装③. 原生Maven演示:②. Maven的核心概念①. Maven目录结构②. pom.xml

①. Maven 简介


①. Maven概述


  • ①. Maven是Apache软件基金会组织维护的一款自动化构建工具。主要有两个作用:


  1. maven工程对jar包的管理过程


  1. 项目的一键构建


  • ②. maven工程对jar包的管理过程


微信图片_20220107104714.png


  • ③. 项目的一键构建


  1. 先来说说什么是构建?指的是项目从编译、测试、运行、打包、安装 ,部署整个过程都交给 maven 进行管理,这个过程称为构建


  1. 一键构建指的是整个构建过程,使用 maven 一个命令可以轻松完成整个工作


微信图片_20220107104733.png


②. maven的安装


  • ①. 确保安装了java环境:maven本身就是java写的,所以要求必须安装JDK。查看java环境变量:echo %JAVA_HOME%
  • ②. 下载并解压 maven 安装程序
  • ③. 配置 Maven 的环境变量:


  MAVEN_HOME=d:/apache-maven-3.3.9 或者 M2_HOME=d:/apache-maven-3.3.9
  path=%MAVEN_HOME%/bin; 或者%M2_HOME%/bin;


④. 验证是否安装成功 mvn -v


微信图片_20220107104824.png


③. 原生Maven演示:


①. 如果没有添加上junit测试的依赖,只要类名和方法名,类名和方法名是test开头的,maven约定会去执行,当我们在项目下执行mvn test,会发现如下的"coming…"进行了输出


微信图片_20220107105020.png


②. 如果引入了junit测试,那么①的说明变了,我们会按照junit的测试来


②. Maven的核心概念


①. Maven目录结构


  • ①. maven中约定的目录结构图解:


微信图片_20220107105059.png


②. 各个目录结构详解:


Maven工程的目录结构


(1). src/main/java —— 存放项目的.java 文件


(2). src/main/resources —— 存放项目资源文件,如 spring, hibernate 配置文件


(3). src/test/java —— 存放所有单元测试.java 文件,如 JUnit 测试类


(4). src/test/resources —— 测试资源文件


(5). target —— 项目输出位置,编译后的 class 文件会输出到此目录


(6). pom.xml——maven 项目核心配置文件


注意:如果是普通的 java 项目,那么就没有 webapp 目录


微信图片_20220107105130.png


②. pom.xml


①. modelVersion:Maven模型的版本,对于Maven2和Maven3来说,它只能是4.0.0


②. groupId:组织id,一般是公司域名的倒写,格式可以为


域名倒写,例如 com.baidu


域名倒写+项目名,例如com.baidu.appolo


③. artifactId:项目名称,也是模块名称对应groupId中项目中的子项目


④. version:项目的版本号。如果项目还在开发中,是不稳定版本,通常在版本后带 -SNAPSHOT。version使用三位数字标识,例如1.1.0


⑤. name:项目的名称


微信图片_20220107105203.png


⑥. packaging:项目打包的类型,可以使 jar、war、rar、ear、pom,默认是 jar(一般父工程设置为pom,子工程设置为jar),web项目是war包


⑦. dependencies | dependency:Maven 的一个重要作用就是管理jar包,为了一个项目可以构建或运行,项目中不可避免的,会依赖很多其他的jar包,在Maven中,这些 jar 就被称为依赖,使用标签dependency来配置。而这种依赖的配置正是通过坐标来定位的,由此我们也不难看出,maven 把所有的 jar包也都视为项目存在了


⑧.properties:是用来定义一些配置属性的,例如project.build.sourceEncoding(项目构建源码编码方式),可以设置为UTF-8,防止中文乱码,也可定义相关构建版本号,便于日后统一升级(配置属性)


  <properties>
    <!--源码编译jdk版本-->    
    <maven.compiler.source>1.8</maven.compiler.source>
    <!--运行代码的jdk版本-->
    <maven.compiler.target>1.8</maven.compiler.target>
    <!--项目构建使用的编码,避免中文乱码-->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <!--生成报告的编码-->
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  </properties>


⑨.build:表示与构建相关的配置,例如设置编译插件的jdk版本(构建)


⑩.parent:在Maven中,如果多个模块都需要声明相同的配置,例如:groupId、version、有相同的依赖、或者相同的组件配置等,也有类似Java的继承机制,用parent声明要继承的父工程的pom配置(继承)


⑩①.modules:在Maven的多模块开发中,为了统一构建整个项目的所有模块,可以提供一个额外的模块,该模块打包方式为pom,并且在其中使用modules聚合的其它模块,这样通过本模块就可以一键自动识别模块间的依赖关系来构建所有模块,叫Maven的聚合


⑩②. description:描述信息


⑩③. relativePath


父项目的pom.xml文件的相对路径。默认值为…/pom.xml。maven首先从当前构建项目开始查找父项目的pom文件,然后从本地仓库,最有从远程仓库。RelativePath允许你选择一个不同的位置


如果默认…/pom.xml没找到父元素的pom,不配置relativePath指向父项目的pom则会报错


<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <!--Maven模型的版本,对于Maven2和Maven3来说,它只能是4.0.0-->
    <modelVersion>4.0.0</modelVersion>
    <!--groupId、artifactId、version三个元素生成了一个Maven项目的基本坐标,
    在众多的maven项目中可以唯一定位到某一个项目。
    坐标也决定着将来项目在仓库中的路径及名称 -->
    <groupId>com.atguigu.gulimall</groupId>
    <artifactId>gulimall</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <!--名称-->
    <name>gulimall</name>
    <!--描述-->
    <description>聚合</description>
    <!--打包-->
    <packaging>pom</packaging>
    <!--模块-->
    <modules>
        <module>gulimall-member</module>
        <module>gulimall-order</module>
        <module>gulimall-coupon</module>
        <module>gulimall-ware</module>
        <module>gulimall-product</module>
        <module>renren-fast</module>
        <module>renren-generator</module>
        <module>gulimall-common</module>
        <module>gulimall-gateway</module>
    </modules>
    <!--插件-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>
                    <addResources>true</addResources>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>


<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <!--Maven模型的版本,对于Maven2和Maven3来说,它只能是4.0.0-->
  <modelVersion>4.0.0</modelVersion>
  <!--父工程的坐标-->
  <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
  <!--公司名或组织名的域名倒序-->
    <groupId>com.atguigu.gulimall</groupId>
  <!--模块名-->
    <artifactId>gulimall-order</artifactId>
  <!--版本号-->
    <version>0.0.1-SNAPSHOT</version>
  <!--名称-->
    <name>gulimall-order</name>
  <!--描述-->
    <description>谷粒商城-订单服务</description>
  <!--配置信息-->
    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Greenwich.SR3</spring-cloud.version>
    </properties>
  <!--依赖-->
    <dependencies>
        <dependency>
            <groupId>com.atguigu.gulimall</groupId>
            <artifactId>gulimall-common</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>


相关文章
|
1月前
|
运维 网络安全 持续交付
IDEA+Docker 远程一键部署项目:技术干货分享
【10月更文挑战第4天】在现代软件开发中,快速、可靠、自动化的部署流程是提升开发效率和运维质量的关键。IDEA(IntelliJ IDEA)作为Java开发者首选的IDE,结合Docker这一轻量级容器化技术,能够实现远程一键部署项目,极大地简化了开发到生产的流程。今天,我将和大家分享这一组合在工作学习中的实际应用和技术干货。
195 3
|
2天前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
33 8
|
25天前
|
Java 关系型数据库 MySQL
Maven——创建 Spring Boot项目
Maven 是一个项目管理工具,通过配置 `pom.xml` 文件自动获取所需的 jar 包,简化了项目的构建和管理过程。其核心功能包括项目构建和依赖管理,支持创建、编译、测试、打包和发布项目。Maven 仓库分为本地仓库和远程仓库,远程仓库包括中央仓库、私服和其他公共库。此外,文档还介绍了如何创建第一个 SpringBoot 项目并实现简单的 HTTP 请求响应。
107 1
Maven——创建 Spring Boot项目
|
28天前
|
Java 关系型数据库 MySQL
如何使用 maven 创建一个 Spring Boot项目
Maven 是一个强大的项目管理工具,通过配置 `pom.xml` 文件自动获取所需的 jar 包,提高开发效率。其核心功能包括项目构建和依赖管理。项目构建支持编译、测试、打包和发布等流程,而依赖管理则通过中央仓库、本地仓库和私有服务器获取和管理项目依赖。示例中展示了如何创建第一个 SpringBoot 项目并实现简单接口。
21 1
如何使用 maven 创建一个 Spring Boot项目
|
1月前
|
Java Maven Android开发
eclipse创建maven项目
本文介绍了在Eclipse中创建Maven项目的步骤,包括打开Eclipse、选择Java项目、完成项目创建以及自动下载插件的过程。
79 2
eclipse创建maven项目
|
16天前
|
缓存 IDE Java
idea的maven项目打包时没有source下的文件
【10月更文挑战第21天】idea的maven项目打包时没有source下的文件
31 1
|
16天前
|
Java API Apache
除了 Maven,还有哪些工具可以管理项目的依赖和版本冲突
除了Maven,常用的项目依赖管理和版本冲突解决工具有Gradle、Ivy、Ant+Ivy、SBT等。这些工具各有特点,适用于不同的开发环境和需求。
|
29天前
|
Java Maven Spring
springboot学习一:idea社区版本创建springboot项目的三种方式(第三种为主)
这篇文章介绍了在IntelliJ IDEA社区版中创建Spring Boot项目的三种方法,特别强调了第三种方法的详细步骤。
179 0
springboot学习一:idea社区版本创建springboot项目的三种方式(第三种为主)
|
1月前
|
Java 应用服务中间件 Maven
【终极解决方案】IDEA maven 项目修改代码不生效。
【终极解决方案】IDEA maven 项目修改代码不生效。
260 1
|
1月前
|
Java Devops 持续交付
Maven学习笔记(二):Maven基础(基于IDEA)
【10月更文挑战第1天】Maven 是一款 Java 项目构建工具,主要用于管理 jar 包及其依赖关系。上一篇简单介绍了Maven的基础知识,本文主要介绍IDEA上的实际使用场景。内容上几近全为学习《尚硅谷2022版Maven教程》整理所得。仅供参考。
154 0
Maven学习笔记(二):Maven基础(基于IDEA)

推荐镜像

更多
下一篇
无影云桌面