2019-11-21 文摘

13.2 Maven

Maven用户可以从spring-boot-starter-parent项目继承来获得合理的默认值.父项目提供了以下特性:

  • 编译默认使用Java 1.8版本.
  • 源文件使用UTF-8编码.
  • 合理的资源过滤
  • 合理的插件配置(exec plugin, Git commit Id和shade).
  • 合理的资源过滤为application.propertiesapplication.yml以及特点配置文件(例如application-dev.propertiesapplication-dev.yml).

注意,因为application.propertiesapplication.yml文件能接受Spring样式的暂位符(${...}),Maven过滤更改为使用@...@暂位符(你可以通过覆盖Maven中的resource.delimiter属性配置来上述配置).

Inheriting the Starter Parent

为了配置你的项目继承spring-boot-starter-parent,配置parent节点如下:



  org.springframework.boot
  spring-boot-starter-parent
  2.0.2.RELEASE

Note

配置父依赖时,你仅仅只需要配置Spring Boot版本即可.如果你导入了其他额外的starter,你可以安全的忽略版本号.

配置父依赖的情况下,你也可以在你的项目中通过覆盖属性的来覆盖父依赖的默认依赖.例如,打算升级到Spring Data的另一个发行版,你需要增加以下配置到你的POM.xml文件中:


  Fowler-SR2

Using Spring Boot without the Parent POM

并不是每个人都喜欢继承spring-booot-starter-parent POM.您可能有您自己需要继承企业标准父模块,或者您可能倾向于显式地声明所有的Maven配置.

如果您不想使用spring-boot-starter-parent,那么您仍然可以通过使用scope=import的依赖配置从依赖管理中获取(但不是插件管理)的好处,如下所示:


  
    
      
      org.springframework.boot
      spring-boot-dependencies
      2.0.2.RELEASE
      pom
      import
      
  

如上所述,上述的示例设置没让您使用属性来覆盖单个依赖项.要达到同样的效果,您需要在你项目的dependencyManagement节点定义spring-boot-dependencies依赖条目之前增加一个条目.
例如,需配置升级到另一个Spring Data发行版,您可以将以下元素添加到您的pom.xml中.(注意Spring Data配置需在spring-boot-dependencies之前).


  
    
    
      org.springframework.data
      spring-data-releasetrain
      Fowler-SR2
      pom
      import
    
    
      
      org.springframework.boot
      spring-boot-dependencies
      2.0.2.RELEASE
      pom
      import
      
  

Note

在上述的例子中,我们配置了BOM,但是任何的依赖配置都可以同样的方式被覆盖.

Using the Spring Boot Maven Plugin

Spring Boot包含了一个Maven plugin,该插件可把项目打包成可执行jar包.
如果你想使用该插件,请配置该插件在节点下,如下例子所示:


  
    
      org.springframework.boot
      spring-boot-maven-plugin
    
  

Note

如果你的项目使用Srping Boot Starter父POM, 你只需要增加插件配置即可.除非你想修改父POM定义的插件配置,否则你无需配置.

你可能感兴趣的:(2019-11-21 文摘)