pom.xml文件
一、<parent>
在Maven项目中,pom.xml
文件中的 <parent>
元素用于定义父项目的坐标。使用 <parent>
可以实现继承机制,子项目可以从父项目继承配置信息,比如依赖管理、插件配置等。这样可以避免在多个子项目中重复配置相同的信息,从而简化了 pom.xml
文件的维护工作。
父项目通常是一个聚合项目(也称为多模块项目),它可能并不产生任何实际的输出,而只是用来管理一组相关的子项目。每个子项目通过指定 <parent>
元素来声明它们与父项目的关系。
1.1 spring-boot-starter-parent
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
打开链接之后:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>3.3.4</version>
</parent>
继续打开依赖发现
<properties>
<activemq.version>6.1.3</activemq.version>
<angus-mail.version>2.0.3</angus-mail.version>
<artemis.version>2.33.0</artemis.version>
<aspectj.version>1.9.22.1</aspectj.version>
<assertj.version>3.25.3</assertj.version>
<awaitility.version>4.2.2</awaitility.version>
<zipkin-reporter.version>3.4.2</zipkin-reporter.version>
<brave.version>6.0.3</brave.version>
<build-helper-maven-plugin.version>3.5.0</build-helper-maven-plugin.version>
<byte-buddy.version>1.14.19</byte-buddy.version>
。。。。。
规范了各种不同第三方的版本号
常见的:dpcp2,pool2,db2,jetty,kafka,mongdb,mysql,spring,thymeleaf(模板引擎)
undertow(服务器),tomcat
二、 <denpendence>
1.mysql
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
可能不用引入版本号,因为parent中已经规定好了。也可以自定义否则就按照默认的。但要注意不同依赖版本问题,springboot的父项目中规定的各项目依赖已经依赖好了。
2.spring-boot-starter
一般来说spring开发的叫spring-boot-starter-。。。
第三方叫 。。-spring-boot-starter
3.mybatis
4.mybatis-plus
5.springboot-starter-web
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
点进去
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>3.3.4</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>6.1.13</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>6.1.13</version>
<scope>compile</scope>
</dependency>
进入tomcat
<dependencies>
<dependency>
<groupId>jakarta.annotation</groupId>
<artifactId>jakarta.annotation-api</artifactId>
<version>2.1.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
<version>10.1.30</version>
<scope>compile</scope>
<exclusions>
<exclusion>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-annotations-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-el</artifactId>
<version>10.1.30</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-websocket</artifactId>
<version>10.1.30</version>
<scope>compile</scope>
<exclusions>
<exclusion>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-annotations-api</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
内部嵌入了一个tomcat
比如要换成jetty的话
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--取消tomcat服务器-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--加入jetty服务器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
区别:tomcat默认,jetty轻量级,undertow不太常见
6.spring-boot-starter-test
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
作用:test程序
三、<builld>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
springboot initial 创建项目已经加入了plugin直接右边打包处理。
运行:java -jar 当前位置的相对地址