spring boot(14)-pom.xml配置

本文详细介绍了如何使用Spring Boot创建项目,包括配置环境参数、管理依赖以及生成可执行的jar文件等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

继承spring-boot-starter-parent

要成为一个spring boot项目,首先就必须在pom.xml中继承spring-boot-starter-parent,同时指定其版本

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.6.RELEASE</version>
	</parent>

环境参数

在普通maven项目中,需要在pom.xml中配置插件来修改jdk版本,utf-8编码等环境参数,在spring boot中则更加简单。

在eclipse中按ctrl+左键点击上面的spring-boot-starter-parent,查看其源码,其中有下面这段内容

	<properties>
		<java.version>1.6</java.version>
		<resource.delimiter>@</resource.delimiter> <!-- delimiter that doesn't clash with Spring ${} placeholders -->
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<maven.compiler.source>${java.version}</maven.compiler.source>
		<maven.compiler.target>${java.version}</maven.compiler.target>
	</properties>

从上面可以看出,spring boot项目默认的jdk版本是1.6,默认的编码是utf-8。如果我们要修改这些环境参数,比如将jdk版本改成1.8,只需要在我们项目的pom.xml文件中覆盖要修改的参数,如下

	<properties>
		<java.version>1.8</java.version>
	</properties>

依赖

spring-boot-starter-parent的源码中又继承了spring-boot-dependencies,spring-boot-dependencies源码又包括以下内容
	<properties>
		<activemq.version>5.14.5</activemq.version>
		<antlr2.version>2.7.7</antlr2.version>
		<appengine-sdk.version>1.9.53</appengine-sdk.version>
		<!-- 以下省略.... -->
	</properties>
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot</artifactId>
				<version>1.5.4.RELEASE</version>
			</dependency>
			<!-- 以下省略.... -->
		</dependencies>
	</dependencyManagement>
<properties>中的内容是用来配置spring boot自动引入的各个jar包的版本,如果你想用别的版本替换里面的版本,和修改JDK一样, 只需要在我们自己项目中的pom.xml文件中覆盖相关参数。
<dependencyManagement>中的内容,就是为什么我们自己项目中配置spring boot组件依赖时,可以不用配置版本,比如
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
如果不理解的话,可以参考我写的maven主题中的一篇文章  maven(十)-继承,这是理解spring boot项目之前必须要理解的概念

生成可执行jar文件

默认情况下,maven打包生成的jar文件是用来给其他项目依赖用的,是无法直接运行的。spring boot根据自生需要,提供了一个插件来生成可执行jar文件。在spring-boot-starter-parent源码中可以找到,如下:
				<plugin>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-maven-plugin</artifactId>
					<executions>
						<execution>
							<goals>
								<goal>repackage</goal>
							</goals>
						</execution>
					</executions>
					<configuration>
						<mainClass>${start-class}</mainClass>
					</configuration>
				</plugin>
我们只需要在自己项目的pom.xml中声明这个插件,就会生效
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
执行过mvn package打包命令后,target目录会生成*.jar,和*.jar.original

.jar.original文件仅仅只有原代码,就是maven原版打包的内容
jar文件是内置了tomcat和spring boot环境,可以直接执行的。在控制台输入 java -jar module-1.0.jar

指定启动类

在上面的插件源码中还有一个${start-class},当我们的项目中有多个main启动类时,通过在pom.xml中覆盖这一参数,可以指定从哪一个类启动,配置方法和前面jdk一样

	<properties>
		<java.version>1.8</java.version>
		<start-class>com.xxx.启动类</start-class>
	</properties>


<think>好的,用户现在的问题是关于如何在pom.xml中添加spring-boot-starter的依赖。让我先仔细看一下用户提供的引用内容,以及之前的问题记录。 用户提到的引用[1]中提到,他们在使用Spring Boot 1.5.9版本时,添加了spring-boot-starter-data-jpa依赖,但无法使用@Entity。这可能是因为依赖配置不正确或者版本问题。同时,引用[2]和[3]解释了spring-boot-starter-parent的作用,说明父POM提供了依赖管理和默认配置,这可能是正确配置依赖的关键。 用户现在的问题是如何在pom.xml中添加spring-boot-starter的依赖。首先,我需要确定用户具体需要哪个starter。Spring Boot有多个starter,比如web、data-jpa等。根据常见情况,可能用户需要的是基本的starter,但更常见的是web starter。不过用户之前的问题是关于data-jpa的,可能需要更具体的指导。 根据引用[3],添加依赖时不需要指定版本号,因为父POM已经管理了版本。所以正确的做法是在dependency中省略version标签,让父项目自动管理版本。例如,引用[3]中的示例展示了如何添加spring-boot-starter-web依赖,没有版本号。 另外,用户可能在父项目中使用了旧版本1.5.9,这可能导致依赖冲突或缺失。引用[1]提到他们使用的parent是1.5.9,但可能现在需要升级到更新的版本,比如2.x,特别是如果用户遇到了@Entity的问题,这可能是因为JPA API的版本不兼容。不过用户当前的问题只是关于如何添加依赖,所以可能不需要涉及版本升级,但需要注意父版本是否正确。 另外,引用[5]提到了镜像配置的问题,可能需要检查Maven的settings.xml是否有正确的仓库配置,以避免依赖下载失败。但这个问题可能属于网络配置,用户当前的问题可能更多是依赖配置的语法问题。 总结步骤: 1. 确认父项目是否正确使用spring-boot-starter-parent,并指定了正确的版本。 2. 在dependencies部分添加所需的starter依赖,如spring-boot-starter-web,不需要指定版本。 3. 如果遇到@Entity问题,可能需要检查是否正确引入了spring-boot-starter-data-jpa,并且父版本是否支持JPA 2.x,因为旧版本可能依赖较旧的API。 可能用户之前的错误在于同时添加了persistence-api 1.0,这可能是过时的,应该依赖Spring Boot管理的JPA版本。所以在回答中,除了添加starter的步骤外,还需要提醒避免手动添加过时的依赖,而是依靠父POM的依赖管理。 另外,用户可能需要示例代码,所以在回答中提供具体的pom.xml片段,展示如何正确配置parent和dependency,同时指出常见的错误,比如指定版本号或缺少必要的依赖。 最后,生成相关问题,帮助用户深入解决可能遇到的其他问题,比如版本冲突、依赖管理原理等。</think>[用户可见层] ### 如何在pom.xml中添加Spring Boot Starter依赖 #### 步骤说明 1. **确认父项目配置** 在`pom.xml`中必须声明`spring-boot-starter-parent`作为父项目,以继承Spring Boot的默认依赖管理和插件配置[^2][^3]。 示例配置: ```xml <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.0</version> <!-- 推荐使用较新版本 --> <relativePath/> </parent> ``` 2. **添加Starter依赖** - 在`<dependencies>`标签内添加需要的Starter依赖,**无需手动指定版本号**(由父项目统一管理)[^3]。 - 例如添加Web模块依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> ``` 3. **避免常见错误** - 若手动指定版本号(如`<version>1.5.9</version>`),可能导致依赖冲突或API不兼容[^1]。 - 不要额外添加旧的JPA依赖(如`persistence-api 1.0`),应直接使用`spring-boot-starter-data-jpa`。 #### 完整配置示例 ```xml <?xml version="1.0" encoding="UTF-8"?> <project> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.0</version> </parent> <dependencies> <!-- Web模块 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- JPA模块 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> </dependencies> </project> ``` #### 注意事项 - 若出现依赖下载失败,需检查Maven镜像配置(例如阿里云镜像)[^5]。 - 旧版本(如1.5.9)可能导致JPA注解(如`@Entity`)无法识别,建议升级至Spring Boot 2.x。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值