4 changed files with 199 additions and 2 deletions
@ -0,0 +1,73 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2012-2017 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.bundling; |
||||||
|
|
||||||
|
import java.io.File; |
||||||
|
import java.io.FileNotFoundException; |
||||||
|
import java.io.IOException; |
||||||
|
|
||||||
|
import org.gradle.testkit.runner.BuildResult; |
||||||
|
import org.gradle.testkit.runner.TaskOutcome; |
||||||
|
import org.junit.Rule; |
||||||
|
import org.junit.Test; |
||||||
|
|
||||||
|
import org.springframework.boot.gradle.testkit.GradleBuild; |
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat; |
||||||
|
|
||||||
|
/** |
||||||
|
* Integration tests for publishing Boot jars and wars using Gradle's Maven Publish |
||||||
|
* plugin. |
||||||
|
* |
||||||
|
* @author Andy Wilkinson |
||||||
|
*/ |
||||||
|
public class MavenPublishingIntegrationTests { |
||||||
|
|
||||||
|
@Rule |
||||||
|
public final GradleBuild gradleBuild = new GradleBuild(); |
||||||
|
|
||||||
|
@Test |
||||||
|
public void bootJarCanBePublished() throws FileNotFoundException, IOException { |
||||||
|
BuildResult result = this.gradleBuild.build("publish"); |
||||||
|
assertThat(result.task(":publish").getOutcome()).isEqualTo(TaskOutcome.SUCCESS); |
||||||
|
assertThat(artifactWithSuffix("jar")).isFile(); |
||||||
|
assertThat(artifactWithSuffix("pom")).is(pomWith().groupId("com.example") |
||||||
|
.artifactId(this.gradleBuild.getProjectDir().getName()).version("1.0") |
||||||
|
.noPackaging().noDependencies()); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void bootWarCanBePublished() throws IOException { |
||||||
|
BuildResult result = this.gradleBuild.build("publish"); |
||||||
|
assertThat(result.task(":publish").getOutcome()).isEqualTo(TaskOutcome.SUCCESS); |
||||||
|
assertThat(artifactWithSuffix("war")).isFile(); |
||||||
|
assertThat(artifactWithSuffix("pom")).is(pomWith().groupId("com.example") |
||||||
|
.artifactId(this.gradleBuild.getProjectDir().getName()).version("1.0") |
||||||
|
.packaging("war").noDependencies()); |
||||||
|
} |
||||||
|
|
||||||
|
private File artifactWithSuffix(String suffix) { |
||||||
|
String name = this.gradleBuild.getProjectDir().getName(); |
||||||
|
return new File(new File(this.gradleBuild.getProjectDir(), "build/repo"), |
||||||
|
String.format("com/example/%s/1.0/%s-1.0.%s", name, name, suffix)); |
||||||
|
} |
||||||
|
|
||||||
|
private PomCondition pomWith() { |
||||||
|
return new PomCondition(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,29 @@ |
|||||||
|
buildscript { |
||||||
|
dependencies { |
||||||
|
classpath files(pluginClasspath.split(',')) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
apply plugin: 'java' |
||||||
|
apply plugin: 'org.springframework.boot' |
||||||
|
apply plugin: 'maven-publish' |
||||||
|
|
||||||
|
bootJar { |
||||||
|
mainClass = 'com.example.Application' |
||||||
|
} |
||||||
|
|
||||||
|
group = 'com.example' |
||||||
|
version = '1.0' |
||||||
|
|
||||||
|
publishing { |
||||||
|
repositories { |
||||||
|
maven { |
||||||
|
url "$buildDir/repo" |
||||||
|
} |
||||||
|
} |
||||||
|
publications { |
||||||
|
mavenBootJava(MavenPublication) { |
||||||
|
from components.bootJava |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,29 @@ |
|||||||
|
buildscript { |
||||||
|
dependencies { |
||||||
|
classpath files(pluginClasspath.split(',')) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
apply plugin: 'war' |
||||||
|
apply plugin: 'org.springframework.boot' |
||||||
|
apply plugin: 'maven-publish' |
||||||
|
|
||||||
|
bootWar { |
||||||
|
mainClass = 'com.example.Application' |
||||||
|
} |
||||||
|
|
||||||
|
group = 'com.example' |
||||||
|
version = '1.0' |
||||||
|
|
||||||
|
publishing { |
||||||
|
repositories { |
||||||
|
maven { |
||||||
|
url "$buildDir/repo" |
||||||
|
} |
||||||
|
} |
||||||
|
publications { |
||||||
|
mavenBootWeb(MavenPublication) { |
||||||
|
from components.bootWeb |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
Loading…
Reference in new issue