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 当前位置的相对地址