springboot中的Maven依赖拾取

时间:2019-01-14 07:37:57

标签: java maven spring-boot

我已经声明了这两个依赖项

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-tomcat</artifactId>   
     <scope>provided</scope> 
</dependency>

和:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

spring-boot-starter-web已具有spring-boot-starter-tomcat的嵌入式tomcat内核。如图https://stackoverflow.com/a/33419889/1171533

我的问题是,何时构建并运行我的项目?选择spring-boot-starter-tomcat的哪个实现来运行?而我该如何找到正在使用的那一个呢?

3 个答案:

答案 0 :(得分:2)

运行mvn dependency:tree

寻找这一行:

...
[INFO] +- org.springframework.boot:spring-boot-starter-tomcat:jar:<version>:provided
...

如果您删除

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-tomcat</artifactId>   
     <scope>provided</scope> 
</dependency>

以前的输出行应该消失了,而是添加了它:

...
[INFO] \- org.springframework.boot:spring-boot-starter-web:jar:<version>:compile
[INFO]    +- org.springframework.boot:spring-boot-starter:jar:<version>:compile
...

答案 1 :(得分:1)

基于类实例,您可以找到包含该类的jar的各种信息。

yourInstance.getClass().getPackage().getImplementationVersion()

答案 2 :(得分:0)

如果您在依赖项以下使用@RestController(即创建宁静的服务),则可以使用

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

如果您使用theamleaf,jsp(您想将应用程序部署为war),则需要包括以下依赖项

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>