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

简介: ①. 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>


相关文章
|
6月前
|
Java 区块链 Maven
关于引入maven项目后出现‘parent.relativePath’ of POM错误时的解决方法
关于引入maven项目后出现‘parent.relativePath’ of POM错误时的解决方法
565 3
|
8月前
|
监控 测试技术 开发者
IDEA项目调试你都会用了么,快看看是否有你不知道的调试技巧
在IntelliJ IDEA中,熟练运用调试工具可显著提升开发效率。通过设置断点、单步执行、变量监控等功能,快速定位问题并优化代码性能。此外,掌握多线程调试、异常处理及远程调试技巧也至关重要。为提高效率,建议合理使用条件断点、快捷键与日志监控,同时不断学习总结经验。若觉得有用,别忘了点赞收藏!
IDEA项目调试你都会用了么,快看看是否有你不知道的调试技巧
|
8月前
|
IDE Java 开发工具
【Java基础-环境搭建-创建项目】IntelliJ IDEA创建Java项目的详细步骤
IntelliJ IDEA创建Java项目的图文详细步骤,手把手带你创建Java项目
1505 10
【Java基础-环境搭建-创建项目】IntelliJ IDEA创建Java项目的详细步骤
|
5月前
|
Java jenkins 应用服务中间件
结合Jenkins与Tomcat,实施Maven项目的自动构建和部署流程。
任何项目构建和部署的自动化流程,总离不开对各个环节精细把控与密切配合。涉及到源代码管理、构建工具、持续集成服务器以及最终的运行时环境的协调。通过上述简洁实用的步骤,可以实现Maven项目从源代码到运行状态的无缝过渡,进而提升软件开发的效率与质量。
337 0
|
10月前
|
Java 应用服务中间件 API
Servlet开发流程 (里面有Idea项目添加Tomcat依赖详细教程)
本文详细介绍了Servlet的开发流程,包括在IntelliJ IDEA中添加Tomcat依赖的详细教程。通过上述步骤,开发者可以快速搭建并运行一个基本的Servlet应用,理解并掌握Servlet的开发流程对于Java Web开发至关重要。希望本文能够帮助开发者顺利进行Servlet开发,提高工作效率。
1220 78
|
Java Maven 开发者
maven项目中官方setting.xml文件
`settings.xml` 是 Maven 的配置文件,用于定义用户或全局级别的构建行为。它包含本地仓库路径、网络代理、服务器认证、仓库镜像及构建配置文件等设置,帮助开发者根据环境定制 Maven 行为,提升构建效率与灵活性。
1205 0
|
8月前
|
数据安全/隐私保护
IntelliJ IDEA使用技巧:在一个项目中如何正确引用其他子模块。
我希望这个解答可以帮助你,有了这些知识,你可以更好地使用IntelliJ IDEA并轻松处理项目中的子模块。
710 19
|
8月前
|
Java 测试技术 项目管理
【JavaEE】从 0 到 1 掌握 Maven 构建 Java 项目核心技巧 解锁 Java 项目高效管理实用实例
本文从Maven基础概念讲起,涵盖安装配置、核心概念(如POM与依赖管理)及优化技巧。结合Java Web项目实例,演示如何用Maven构建和管理项目,解决常见问题,助你高效掌握这一强大工具,提升Java开发与项目管理能力。适合初学者及进阶开发者学习。资源链接:[点此获取](https://pan.quark.cn/s/14fcf913bae6)。
288 6
|
11月前
|
Java Maven
Idea配置项目的热启动
Idea配置项目的热启动
1556 5
Idea配置项目的热启动
|
XML Java 测试技术
从零开始学 Maven:简化 Java 项目的构建与管理
Maven 是一个由 Apache 软件基金会开发的项目管理和构建自动化工具。它主要用在 Java 项目中,但也可以用于其他类型的项目。
702 1
从零开始学 Maven:简化 Java 项目的构建与管理

推荐镜像

更多