Document details of configuring Gradle to produce valid poms
If a Gradle build is using the Spring Boot Gradle plugin's support for declaring dependencies without versions then they will be unable to publish Maven artifacts from the build as the Gradle-generated pom will fail to validate. This is because Gradle doesn't apply the Boot-provided dependency versions to the dependencies in the generated pom. This can be addressed by configuring Gradle to generate a pom that either imports spring-boot-dependencies into its dependency management or that uses spring-boot-starter-parent as its parent. This commit updates the documentation to document the need for this configuration and to provide examples of how to do so. Closes gh-1806
This commit is contained in:
@@ -568,6 +568,80 @@ you may find that it includes unnecessary dependencies.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[[build-tool-plugins-gradle-publishing-artifacts-to-a-maven-repository]]
|
||||||
|
=== Publishing artifacts to a Maven repository using Gradle
|
||||||
|
If you are <<build-tool-plugins-gradle-dependencies-without-versions, declaring
|
||||||
|
dependencies without versions>> and you want to publish artifacts to a Maven repository
|
||||||
|
you will need to configure the Maven publication with details of Spring Boot's
|
||||||
|
dependency management. This can be achieved by configuring it to publish poms that
|
||||||
|
inherit from `spring-boot-starter-parent` or that import dependency management from
|
||||||
|
`spring-boot-dependencies`. The exact details of this configuration depend on how you're
|
||||||
|
using Gradle and how you're trying to publish the artifacts.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[[build-tool-plugins-gradle-publishing-artifacts-to-a-maven-repository-inherit]]
|
||||||
|
==== Configuring Gradle to produce a pom that inherits dependency management
|
||||||
|
The following is an example of configuring Gradle to generate a pom that inherits
|
||||||
|
from `spring-boot-starter-parent`. Please refer to the
|
||||||
|
http://www.gradle.org/docs/current/userguide/userguide.html[Gradle User Guide] for
|
||||||
|
further information.
|
||||||
|
|
||||||
|
[source,groovy,indent=0,subs="verbatim,attributes"]
|
||||||
|
----
|
||||||
|
uploadArchives {
|
||||||
|
repositories {
|
||||||
|
mavenDeployer {
|
||||||
|
pom {
|
||||||
|
project {
|
||||||
|
parent {
|
||||||
|
groupId "org.springframework.boot"
|
||||||
|
artifactId "spring-boot-starter-parent"
|
||||||
|
version "{spring-boot-version}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
----
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[[build-tool-plugins-gradle-publishing-artifacts-to-a-maven-repository-import]]
|
||||||
|
==== Configuring Gradle to produce a pom that imports dependency management
|
||||||
|
The following is an example of configuring Gradle to generate a pom that imports
|
||||||
|
the dependency management provided by `spring-boot-dependencies`. Please refer to the
|
||||||
|
http://www.gradle.org/docs/current/userguide/userguide.html[Gradle User Guide] for
|
||||||
|
further information.
|
||||||
|
|
||||||
|
[source,groovy,indent=0,subs="verbatim,attributes"]
|
||||||
|
----
|
||||||
|
uploadArchives {
|
||||||
|
repositories {
|
||||||
|
mavenDeployer {
|
||||||
|
pom {
|
||||||
|
project {
|
||||||
|
dependencyManagement {
|
||||||
|
dependencies {
|
||||||
|
dependency {
|
||||||
|
groupId "org.springframework.boot"
|
||||||
|
artifactId "spring-boot-dependencies"
|
||||||
|
version "{spring-boot-version}"
|
||||||
|
type "pom"
|
||||||
|
scope "import"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
----
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[[build-tool-plugins-other-build-systems]]
|
[[build-tool-plugins-other-build-systems]]
|
||||||
== Supporting other build systems
|
== Supporting other build systems
|
||||||
If you want to use a build tool other than Maven or Gradle, you will likely need to develop
|
If you want to use a build tool other than Maven or Gradle, you will likely need to develop
|
||||||
|
|||||||
Reference in New Issue
Block a user