January 12, 2025About 3 min
Maven
- 是什么
有啥作用
pom文件在src的同级目录下
groupId,artifactId,version。。
这些就是在描述当前项目的信息,如安装到本地仓库时会用到其中的信息
概念
仓库
坐标
配置
仓库配置
- 这文件在Maven的jar包中pom文件,一般不改它
- 对哪个仓库镜像还可以使用正则
依赖配置
示例
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>${mybatis.spring}</version> <optional>true</optional><!-- 这玩意就是本项目被引用后不然引用的那个项目看到本项目的这个依赖的版本,默认为true() --> <exclusions><!-- 排除引用项目传递过来的的依赖,例如这里排除引用的mybatis中的下面这个依赖,如果有的话 --> <exclusion> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-logging-juli</artifactId> </exclusion> </exclusions> <scope>test</scope> </dependency>
构建
命令构建
前提已经有了pom文件
插件构建
自动给你生成对应模板的项目结构,idea估计就是调用这个生成了对应的模板
安装插件
没太明白,有个实例就是不是spring的项目去运行tomcat就可以在这里引用插件,然后就能跑了(😄)
在pom的project标签下添加这个标签就会有tomcat插件
<build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <version>1.1</version> </plugin> </plugins> </build>
生命周期
- 这玩意可以增加生命周期期间的功能
高级Maven
较完整的pom文件实例
这是管理模块的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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!--Maven模型的版本 -->
<modelVersion>4.0.0</modelVersion>
<!-- 父工程的信息 -->
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>2.7.3</version>
</parent>
<!-- 本工程的信息 -->
<groupId>com.sky</groupId>
<artifactId>sky-take-out</artifactId>
<packaging>pom</packaging><!-- 声明这个项目是管理模块的 -->
<version>1.0-SNAPSHOT</version>
<!-- 集成的模块 -->
<modules>
<module>sky-common</module>
<module>sky-pojo</module>
<module>sky-server</module>
</modules>
<!-- 就是把一些属性定义成自定义变量易于管理 -->
<properties>
<mybatis.spring>2.2.0</mybatis.spring>
<lombok>1.18.20</lombok>
<fastjson>1.2.76</fastjson>
<commons.lang>2.6</commons.lang>
<druid>1.2.1</druid>
<pagehelper>1.3.0</pagehelper>
<aliyun.sdk.oss>3.10.2</aliyun.sdk.oss>
<knife4j>3.0.2</knife4j>
<aspectj>1.9.4</aspectj>
<jjwt>0.9.1</jjwt>
<jaxb-api>2.3.1</jaxb-api>
<poi>3.16</poi>
</properties>
<!-- 插件的安装 -->
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.1</version>
</plugin>
</plugins>
</build>
<dependencyManagement><!-- 声明管理模块依赖版本,模块只需要导入依赖不需要版本 -->
<dependencies>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis.spring}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok}</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
如何分
模块之间的使用就是使用依赖导入对于模块的坐标即可,没毛病,install一下就安装到了本地仓库中了,其他的模块就可以导入该依赖来使用对应的类
怎么聚合
上面的pom示例有样子,这个项目就是专门管理模块的
没有这个你得每当模块改动你都得install一下,而这个就相当于统一进行这些步骤,会按照依赖的关系进行依次的执行生命周期
怎么继承
继承和聚合的区别
属性
就是用来动态的设置一些字段的,如版本
版本约定
就是工程中version里面的值的约定
资源配置
就是动态的把一些配置文件的值可以由父工程统一管理
多环境开发
私服
使用专业的私服软件进行管理