maven从入门到精通 第一章 Maven核心程序解压与配置

一 为什么要使用Maven

jar包很难找全,jar包的版本可能不修改项目需求,百度的会有问题,不能使用,使用Maven可以自动下载jar包,实际的框架内部存在错综复杂的依赖关系
在这里插入图片描述

1 依赖管理 帮助管jar包

随着SpringBoot等框架的高集成的框架引入,一个项目往往需要上百个jar包
而如果用Maven来管理,只需要依据功能,配置个位数依赖
在这里插入图片描述

   <!-- Nacos 服务注册发现启动器 -->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>

    <!-- web启动器依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- 视图模板技术 thymeleaf -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>

2 构建管理 脱离IDE进行运行

2.1 传统方式,就是打包成war包,然后放在tomacat上运行

修改这个tomcat为本地的tomcat版本
在这里插入图片描述
点击add
在这里插入图片描述
添加成功后运行

2.2 一个程序的运行步骤

在这里插入图片描述
运行后,k8s动态分负载
自动化部署

二 maven的工作机制

在这里插入图片描述

1 配置maven

1.1 关注 Maven 的核心配置文件:conf/settings.xml

改本地仓库位置,创建一个本地文件夹

 <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->
  <localRepository>D:maven-repository</localRepository>

配置阿里云镜像仓库,注释掉原来的位置

  <mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>central</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
  </mirror>

在profiles里面装jdk版本

  <profile>
    <id>jdk-1.8</id>
    <activation>
    <activeByDefault>true</activeByDefault>
    <jdk>1.8</jdk>
    </activation>
    <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
    </properties>
  </profile>

1.2 配置环境变量

检测JDK版本:

C:Users20120>java -version
java version "1.8.0_152"
Java(TM) SE Runtime Environment (build 1.8.0_152-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode)

检测JAVA_HOME的位置

C:Users20120>echo %JAVA_HOME%
C:Program FilesJavajdk1.8.0_152

配置MAVEN_HOME
HOME一般是bin目录的上一级
PATH指向的都是bin目录

在这里插入图片描述
path里面添加

%MAVEN_HOME%bin

配完看版本

C:Users20120>mvn -v
Apache Maven 3.9.1 (2e178502fcdbffc201671fb2537d0cb4b4cc58f8)
Maven home: D:Javaapache-maven-3.9.1
Java version: 1.8.0_152, vendor: Oracle Corporation, runtime: C:Program FilesJavajdk1.8.0_152jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

2 maven中的坐标概念

2.1 三个坐标,在jar库中可以定位到唯一的jar包

在这里插入图片描述
公司+项目:一个具体要实现的程序,比方说滴滴,或者QQ
比如说com.msb.maven
工程:其中的功能模块,比方说,前端,后端
版本号:QQ一直会有迭代版本

2.2 根据坐标到本地仓库中寻找到对应的jar包

生成maven工程
mvn是主命令,后面是子命令
archetype:调用的一个插件
generate:目标

mvn archetype:generate

在这里插入图片描述
直接回车

Define value for property 'groupId': com.xyt.maven
Define value for property 'artifactId': pro01-maven-java
Define value for property 'version' 1.0-SNAPSHOT: :
Define value for property 'package' com.xyt.maven: :
Confirm properties configuration:
groupId: com.xyt.maven
artifactId: pro01-maven-java
version: 1.0-SNAPSHOT
package: com.xyt.maven
 Y: :

构建成功

[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.1
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: basedir, Value: D:maven_workspacespaceVideo
[INFO] Parameter: package, Value: com.xyt.maven
[INFO] Parameter: groupId, Value: com.xyt.maven
[INFO] Parameter: artifactId, Value: pro01-maven-java
[INFO] Parameter: packageName, Value: com.xyt.maven
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] project created from Old (1.x) Archetype in dir: D:maven_workspacespaceVideopro01-maven-java
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  15:10 min
[INFO] Finished at: 2023-05-04T12:06:21+08:00
[INFO] ------------------------------------------------------------------------

验证:在这里插入图片描述

2.3 修改默认maven配置

POM文件修改

<!--跟标签,对当前工程进行配置管理-->
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <!--从maven2就开始固定为4.0.0.0
  表示当前xml所采用的标签结构
  -->
  <!--groupID 代表公司或组织开发的某个项目-->
  <groupId>com.xyt.maven</groupId>
  <!--代表项目的一个模块-->
  <artifactId>pro01-maven-java</artifactId>
  <!--
    模块的版本号
  -->
  <version>1.0-SNAPSHOT</version>
  <!--
    打包成一个jar包
  -->
  <packaging>jar</packaging>
  <!--取值pom,说明这个工程用于管理其他工程-->

  <name>pro01-maven-java</name>
  <url>http://maven.apache.org</url>
  <!--propertise进行属性值的定义-->

  <properties>
  <!--
    在构建过程中读取源码时候用的字符集
  -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
  <!--配置一类,很多个具体依赖信息-->

    <dependency>
    <!--dependency 单个依赖信息,一个具体的依赖信息-->
    <!--gav,三标签
       scope 依赖的范围
    -->
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

三 Maven核心概念

1 POM(Project Object Model)

项目对象模型,类似于DOM操作是js的核心,POM是MAVEN的核心
模型化思想,把地球想象成一个地球仪去分析
学maven,就是学怎么配置POM文件

2 约定的目录结构

maven固定生成的一个目录结构,是所有POM的祖宗,超级POM配置的,程序运行里面的,就是单一的POM
在这里插入图片描述
约定的意义就是实现项目搭建的统一与自动化,形成一个固定流程
开发领域技术发展的趋势是,约定大于配置,配置大于编码

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>