Add a second, portal-compatible ID to the Gradle plugin

To be compatible with Gradle's plugin portal, plugins must have an
ID that uses a reverse domain name. This means that spring-boot is
not compatible.

This commit introduces a new ID, org.springframework.boot, and
deprecates the old ID.

Closes gh-6997
This commit is contained in:
Andy Wilkinson 2016-10-05 14:54:23 +01:00
parent 7019894f0e
commit ad3e5c04bb
35 changed files with 162 additions and 33 deletions

View File

@ -182,7 +182,7 @@ the `spring-boot` plugin:
classpath("org.springframework.boot:spring-boot-gradle-plugin:{spring-boot-version}")
}
}
apply plugin: 'spring-boot'
apply plugin: 'org.springframework.boot'
----
If you are using a milestone or snapshot release you will also need to add appropriate

View File

@ -387,7 +387,7 @@ With Gradle, the equivalent configuration would be:
[source,groovy,indent=0,subs="verbatim,quotes,attributes"]
----
apply plugin: 'spring-boot'
apply plugin: 'org.springframework.boot'
springBoot {
executable = true

View File

@ -240,7 +240,7 @@ endif::release[]
}
apply plugin: 'java'
apply plugin: 'spring-boot'
apply plugin: 'org.springframework.boot'
jar {
baseName = 'myproject'

View File

@ -257,7 +257,7 @@ endif::[]
}
apply plugin: 'java'
apply plugin: 'spring-boot'
apply plugin: 'org.springframework.boot'
repositories {
ifeval::["{spring-boot-repo}" != "release"]

View File

@ -0,0 +1,50 @@
/*
* Copyright 2012-2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.boot.gradle;
import org.gradle.tooling.ProjectConnection;
import org.junit.Rule;
import org.junit.Test;
import org.springframework.boot.test.rule.OutputCapture;
import static org.assertj.core.api.Assertions.assertThat;
/**
* Tests for using the old, deprecated plugin ID.
*
* @author Andy Wilkinson
*/
public class DeprecatedPluginTests {
private ProjectConnection project;
private static final String BOOT_VERSION = Versions.getBootVersion();
@Rule
public OutputCapture output = new OutputCapture();
@Test
public void deprecatedIdWorksAndLogsAWarning() throws Exception {
this.project = new ProjectCreator().createProject("deprecated-plugin");
this.project.newBuild().forTasks("build")
.withArguments("-PbootVersion=" + BOOT_VERSION, "--stacktrace").run();
assertThat(this.output.toString())
.contains("The plugin id 'spring-boot' is deprecated");
}
}

View File

@ -8,7 +8,7 @@ buildscript {
}
apply plugin: 'java'
apply plugin: 'spring-boot'
apply plugin: 'org.springframework.boot'
repositories {
mavenLocal()

View File

@ -9,7 +9,7 @@ buildscript {
apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'spring-boot'
apply plugin: 'org.springframework.boot'
jar {
baseName = 'classifier-extension'

View File

@ -9,7 +9,7 @@ buildscript {
apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'spring-boot'
apply plugin: 'org.springframework.boot'
jar {
baseName = 'classifier'

View File

@ -0,0 +1,26 @@
buildscript {
repositories {
mavenLocal()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${project.bootVersion}")
}
}
apply plugin: 'spring-boot'
group = 'deprecated-plugin'
version = '0.0.0'
repositories {
mavenLocal()
mavenCentral()
}
springBoot {
mainClass 'com.example.Main'
}
dependencies {
compile 'org.springframework.boot:spring-boot-starter'
}

View File

@ -12,7 +12,7 @@ repositories {
mavenCentral()
}
apply plugin: 'spring-boot'
apply plugin: 'org.springframework.boot'
apply plugin: 'java'
dependencies {

View File

@ -7,7 +7,7 @@ buildscript {
}
}
apply plugin: 'spring-boot'
apply plugin: 'org.springframework.boot'
group = 'flatdir'
version = '0.0.0'

View File

@ -9,7 +9,7 @@ buildscript {
apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'spring-boot'
apply plugin: 'org.springframework.boot'
apply plugin: 'application'
group = 'installer'

View File

@ -9,7 +9,7 @@ buildscript {
apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'spring-boot'
apply plugin: 'org.springframework.boot'
group = 'installer'
version = '0.0.0'
@ -17,7 +17,7 @@ version = '0.0.0'
install {
repositories.mavenInstaller {
pom.project {
parent {
parent {
groupId 'org.springframework.boot'
artifactId 'spring-boot-starter-parent'
version "${project.bootVersion}"

View File

@ -9,7 +9,7 @@ buildscript {
apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'spring-boot'
apply plugin: 'org.springframework.boot'
group = 'installer'
version = '0.0.0'

View File

@ -13,7 +13,7 @@ repositories {
mavenCentral()
}
apply plugin: 'spring-boot'
apply plugin: 'org.springframework.boot'
apply plugin: 'java'
dependencies {

View File

@ -15,7 +15,7 @@ subprojects {
}
}
apply plugin: 'spring-boot'
apply plugin: 'org.springframework.boot'
repositories {
mavenLocal()

View File

@ -8,7 +8,7 @@ buildscript {
}
project(':projectA') {
apply plugin: 'spring-boot'
apply plugin: 'org.springframework.boot'
repositories {
mavenLocal()
}

View File

@ -8,7 +8,7 @@ buildscript {
}
project('main') {
apply plugin: 'spring-boot'
apply plugin: 'org.springframework.boot'
apply plugin: 'java'
repositories {

View File

@ -7,7 +7,7 @@ buildscript {
}
}
apply plugin: 'spring-boot'
apply plugin: 'org.springframework.boot'
group = 'nojar'
version = '0.0.0'

View File

@ -12,7 +12,7 @@ repositories {
mavenCentral()
}
apply plugin: 'spring-boot'
apply plugin: 'org.springframework.boot'
apply plugin: 'java'
dependencies {

View File

@ -10,7 +10,7 @@ buildscript {
}
apply plugin: 'java'
apply plugin: 'spring-boot'
apply plugin: 'org.springframework.boot'
repositories {
mavenLocal()

View File

@ -10,7 +10,7 @@ buildscript {
}
apply plugin: 'java'
apply plugin: 'spring-boot'
apply plugin: 'org.springframework.boot'
repositories {
mavenLocal()

View File

@ -22,7 +22,7 @@ dependencies {
springBootStarter "org.springframework.boot:${project.starter}:${project.bootVersion}"
}
apply plugin: 'spring-boot'
apply plugin: 'org.springframework.boot'
task checkCommonsLogging {
doFirst {

View File

@ -14,10 +14,10 @@ repositories {
mavenCentral()
}
apply plugin: 'spring-boot'
apply plugin: 'org.springframework.boot'
apply plugin: 'war'
dependencies {
dependencies {
compile 'org.springframework.boot:spring-boot-starter-freemarker'
providedRuntime "org.springframework.boot:spring-boot-starter-$servletContainer"
}

View File

@ -18,7 +18,7 @@ buildscript {
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'spring-boot'
apply plugin: 'org.springframework.boot'
jar {
baseName = 'spring-boot-sample-actuator'

View File

@ -23,7 +23,16 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-neo4j</artifactId>
</dependency>
<!-- <dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-ogm-embedded-driver</artifactId>
<version>${neo4j-ogm.version}</version>
</dependency>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-ogm-bolt-driver</artifactId>
<version>${neo4j-ogm.version}</version>
</dependency> -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>

View File

@ -18,7 +18,7 @@ buildscript {
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'spring-boot'
apply plugin: 'org.springframework.boot'
jar {
baseName = 'spring-boot-sample-simple'

View File

@ -18,7 +18,7 @@ buildscript {
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'spring-boot'
apply plugin: 'org.springframework.boot'
jar {
baseName = 'spring-boot-sample-profile'

View File

@ -18,7 +18,7 @@ buildscript {
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'spring-boot'
apply plugin: 'org.springframework.boot'
jar {
baseName = 'spring-boot-sample-simple'

View File

@ -19,7 +19,7 @@ buildscript {
apply plugin: 'java'
apply plugin: 'eclipse-wtp'
apply plugin: 'idea'
apply plugin: 'spring-boot'
apply plugin: 'org.springframework.boot'
apply plugin: 'war'
war {

View File

@ -21,7 +21,7 @@ buildscript {
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'spring-boot'
apply plugin: 'org.springframework.boot'
springBoot {
classifier = 'exec'

View File

@ -34,7 +34,7 @@ import org.springframework.boot.loader.tools.Layouts;
* two of them. E.g.
*
* <pre>
* apply plugin: "spring-boot"
* apply plugin: 'org.springframework.boot'
* springBoot {
* mainClass = 'org.demo.Application'
* layout = 'ZIP'

View File

@ -0,0 +1,43 @@
/*
* Copyright 2012-2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.boot.gradle.plugin;
import org.gradle.api.Project;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* {@link SpringBootPlugin} subclass that outputs a deprecation warning to direct people
* to use the new Gradle Plugin Portal-compatible ID {@code org.springframework.boot}.
*
* @author Andy Wilkinson
* @deprecated since 1.4.2 in favor of {@link SpringBootPlugin}
*/
@Deprecated
public class DeprecatedSpringBootPlugin extends SpringBootPlugin {
private static final Logger logger = LoggerFactory
.getLogger(DeprecatedSpringBootPlugin.class);
@Override
public void apply(Project project) {
logger.warn("The plugin id 'spring-boot' is deprecated. Please use "
+ "'org.springframework.boot' instead.");
super.apply(project);
}
}

View File

@ -0,0 +1 @@
implementation-class=org.springframework.boot.gradle.plugin.SpringBootPlugin

View File

@ -1 +1 @@
implementation-class=org.springframework.boot.gradle.plugin.SpringBootPlugin
implementation-class=org.springframework.boot.gradle.plugin.DeprecatedSpringBootPlugin