初次看 spring boot
的时候,被各种 starter
看花了眼,其实,starter
的作用很简单。
你可以理解为各种 starter
已经把需要的依赖提前写好了,你引入 starter
相当于你引入了各种依赖。
比如,你有两个 maven
,一个 A
模块,一个 B
模块。
A 模块
它的 pom.xml
的内容如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| <?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"> <modelVersion>4.0.0</modelVersion>
<groupId>org.mvntest</groupId> <artifactId>test</artifactId> <version>1.1-SNAPSHOT</version>
<properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> <lombok.version>1.18.10</lombok.version> </properties>
<dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok.version}</version> </dependency> <dependency> <groupId>souce</groupId> <artifactId>souce-tool</artifactId> <version>0.0.6-SNAPSHOT</version> </dependency> </dependencies>
</project>
|
A
模块的 pom
引入了两个依赖。
B 模块
B
模块的 pom.xml
如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <?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"> <modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId> <artifactId>mvn2</artifactId> <version>1.0-SNAPSHOT</version>
<properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties>
<dependencies> <dependency> <groupId>org.mvntest</groupId> <artifactId>test</artifactId> <version>1.1-SNAPSHOT</version> </dependency> </dependencies>
</project>
|
让 B
模块 maven
运行后,他就把 A
模块的依赖同样下载下来了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> <exclusions> <exclusion> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> </exclusion> <exclusion> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> </exclusion> </exclusions> </dependency>
|
exclusions
不导入上面模块中的某个依赖。