Following on from #18532.

There are still some settings (in 2.3.1.RELEASE) getting inherited which need to be overridden but which are not documented:

  • scm -> developerConnection
  • scm -> connection
  • issueManagement
  • organization

A complete override would look like this:

<description/>
<url/>
<organization/>
<issueManagement/>
<developers>
    <developer/>
</developers>
<licenses>
    <license/>
</licenses>
<scm>
    <connection/>
    <developerConnection/>
    <url/>
</scm>

However, both organization and issueManagement are not required by Maven central so it would be better to remove them from spring-boot-starter-parent, to eliminate the need for overriding them.

scm developerConnection and connection are required so need adding to the documentation.

Comment From: wilkinsona

Thank you, @rupert-madden-abbott.

scm developerConnection and connection are required so need adding to the documentation.

I'm not sure that they are required. We haven't got those in spring-boot-starter-parent in Spring Boot 2.2.x, although we do have them in some other poms.

Comment From: wilkinsona

Here are the relevant parts of the effective pom for a project using spring-boot-starter-parent 2.2.8:

  <url>https://projects.spring.io/spring-boot/#/spring-boot-starter-parent/demo</url>
  <licenses>
    <license>
      <name>Apache License, Version 2.0</name>
      <url>https://www.apache.org/licenses/LICENSE-2.0</url>
    </license>
  </licenses>
  <developers>
    <developer>
      <name>Pivotal</name>
      <email>info@pivotal.io</email>
      <organization>Pivotal Software, Inc.</organization>
      <organizationUrl>https://www.spring.io</organizationUrl>
    </developer>
  </developers>
  <scm>
    <url>https://github.com/spring-projects/spring-boot/spring-boot-starter-parent/demo</url>
  </scm>

And here's the equivalent when using 2.3.1:

  <url>https://spring.io/projects/spring-boot/demo</url>
  <organization>
    <name>Pivotal Software, Inc.</name>
    <url>https://spring.io</url>
  </organization>
  <licenses>
    <license>
      <name>Apache License, Version 2.0</name>
      <url>https://www.apache.org/licenses/LICENSE-2.0</url>
    </license>
  </licenses>
  <developers>
    <developer>
      <name>Pivotal</name>
      <email>info@pivotal.io</email>
      <organization>Pivotal Software, Inc.</organization>
      <organizationUrl>https://www.spring.io</organizationUrl>
    </developer>
  </developers>
  <scm>
    <connection>scm:git:git://github.com/spring-projects/spring-boot.git/demo</connection>
    <developerConnection>scm:git:ssh://git@github.com/spring-projects/spring-boot.git/demo</developerConnection>
    <url>https://github.com/spring-projects/spring-boot/demo</url>
  </scm>
  <issueManagement>
    <system>GitHub</system>
    <url>https://github.com/spring-projects/spring-boot/issues</url>
  </issueManagement>

Given how it's used, I think it makes sense to minimise the elements in spring-boot-starter-parent. It looks like we can safely remove organization scm/connection, scm/developerConnection, and issueManagement and not fall afoul of Maven Central's pom validation.