23 changed files with 182 additions and 368 deletions
@ -0,0 +1,78 @@ |
|||||||
|
import org.springframework.boot.gradle.tasks.bundling.BootJar |
||||||
|
import org.springframework.boot.gradle.tasks.bundling.BootWar |
||||||
|
|
||||||
|
plugins { |
||||||
|
id "java" |
||||||
|
id "org.springframework.boot" |
||||||
|
id "war" |
||||||
|
} |
||||||
|
|
||||||
|
apply plugin: "io.spring.dependency-management" |
||||||
|
|
||||||
|
repositories { |
||||||
|
maven { url "file:${rootDir}/../test-repository"} |
||||||
|
mavenCentral() |
||||||
|
maven { |
||||||
|
url "https://repo.spring.io/milestone" |
||||||
|
content { |
||||||
|
excludeGroup "org.springframework.boot" |
||||||
|
} |
||||||
|
} |
||||||
|
maven { |
||||||
|
url "https://repo.spring.io/snapshot" |
||||||
|
content { |
||||||
|
excludeGroup "org.springframework.boot" |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
configurations { |
||||||
|
jetty |
||||||
|
tomcat |
||||||
|
undertow |
||||||
|
} |
||||||
|
|
||||||
|
tasks.register("resourcesJar", Jar) { jar -> |
||||||
|
def nested = project.resources.text.fromString("nested") |
||||||
|
from(nested) { |
||||||
|
into "META-INF/resources/" |
||||||
|
rename (".*", "nested-meta-inf-resource.txt") |
||||||
|
} |
||||||
|
if (!isWindows()) { |
||||||
|
def encodedName = project.resources.text.fromString("encoded-name") |
||||||
|
from(encodedName) { |
||||||
|
into "META-INF/resources/" |
||||||
|
rename (".*", 'nested-reserved-!#\\$%&()*+,:=?@[]-meta-inf-resource.txt') |
||||||
|
} |
||||||
|
} |
||||||
|
classifier = 'resources' |
||||||
|
} |
||||||
|
|
||||||
|
dependencies { |
||||||
|
compileOnly("org.eclipse.jetty:jetty-server") |
||||||
|
|
||||||
|
implementation("org.springframework.boot:spring-boot-starter") |
||||||
|
implementation("org.springframework:spring-web") |
||||||
|
|
||||||
|
jetty("org.springframework.boot:spring-boot-starter-jetty") |
||||||
|
jetty files(resourcesJar) |
||||||
|
tomcat("org.springframework.boot:spring-boot-starter-tomcat") |
||||||
|
tomcat files(resourcesJar) |
||||||
|
undertow("org.springframework.boot:spring-boot-starter-undertow") |
||||||
|
undertow files(resourcesJar) |
||||||
|
} |
||||||
|
|
||||||
|
def boolean isWindows() { |
||||||
|
return File.separatorChar == '\\'; |
||||||
|
} |
||||||
|
|
||||||
|
["jetty", "tomcat", "undertow"].each { container -> |
||||||
|
def configurer = { task -> |
||||||
|
task.dependsOn resourcesJar |
||||||
|
task.mainClass = "com.example.ResourceHandlingApplication" |
||||||
|
task.classpath = sourceSets.main.runtimeClasspath.plus(configurations.getByName(container)) |
||||||
|
task.classifier = container |
||||||
|
} |
||||||
|
tasks.register("${container}BootJar", BootJar, configurer) |
||||||
|
tasks.register("${container}BootWar", BootWar, configurer) |
||||||
|
} |
||||||
@ -0,0 +1,25 @@ |
|||||||
|
pluginManagement { |
||||||
|
repositories { |
||||||
|
maven { url "file:${rootDir}/../test-repository"} |
||||||
|
mavenCentral() |
||||||
|
maven { |
||||||
|
url "https://repo.spring.io/milestone" |
||||||
|
content { |
||||||
|
excludeGroup "org.springframework.boot" |
||||||
|
} |
||||||
|
} |
||||||
|
maven { |
||||||
|
url "https://repo.spring.io/snapshot" |
||||||
|
content { |
||||||
|
excludeGroup "org.springframework.boot" |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
resolutionStrategy { |
||||||
|
eachPlugin { |
||||||
|
if (requested.id.id == "org.springframework.boot") { |
||||||
|
useModule "org.springframework.boot:spring-boot-gradle-plugin:${requested.version}" |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1 @@ |
|||||||
|
webapp resource |
||||||
9
spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/AbstractApplicationLauncher.java → spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/intTest/java/org/springframework/boot/context/embedded/AbstractApplicationLauncher.java
9
spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/AbstractApplicationLauncher.java → spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/intTest/java/org/springframework/boot/context/embedded/AbstractApplicationLauncher.java
6
spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/BootRunApplicationLauncher.java → spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/intTest/java/org/springframework/boot/context/embedded/BootRunApplicationLauncher.java
6
spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/BootRunApplicationLauncher.java → spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/intTest/java/org/springframework/boot/context/embedded/BootRunApplicationLauncher.java
21
spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/EmbeddedServerContainerInvocationContextProvider.java → spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/intTest/java/org/springframework/boot/context/embedded/EmbeddedServerContainerInvocationContextProvider.java
21
spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/EmbeddedServerContainerInvocationContextProvider.java → spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/intTest/java/org/springframework/boot/context/embedded/EmbeddedServerContainerInvocationContextProvider.java
0
spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/EmbeddedServletContainerJarDevelopmentIntegrationTests.java → spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/intTest/java/org/springframework/boot/context/embedded/EmbeddedServletContainerJarDevelopmentIntegrationTests.java
0
spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/EmbeddedServletContainerJarDevelopmentIntegrationTests.java → spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/intTest/java/org/springframework/boot/context/embedded/EmbeddedServletContainerJarDevelopmentIntegrationTests.java
0
spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/EmbeddedServletContainerJarPackagingIntegrationTests.java → spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/intTest/java/org/springframework/boot/context/embedded/EmbeddedServletContainerJarPackagingIntegrationTests.java
0
spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/EmbeddedServletContainerJarPackagingIntegrationTests.java → spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/intTest/java/org/springframework/boot/context/embedded/EmbeddedServletContainerJarPackagingIntegrationTests.java
0
spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/EmbeddedServletContainerTest.java → spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/intTest/java/org/springframework/boot/context/embedded/EmbeddedServletContainerTest.java
0
spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/EmbeddedServletContainerTest.java → spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/intTest/java/org/springframework/boot/context/embedded/EmbeddedServletContainerTest.java
0
spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/EmbeddedServletContainerWarDevelopmentIntegrationTests.java → spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/intTest/java/org/springframework/boot/context/embedded/EmbeddedServletContainerWarDevelopmentIntegrationTests.java
0
spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/EmbeddedServletContainerWarDevelopmentIntegrationTests.java → spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/intTest/java/org/springframework/boot/context/embedded/EmbeddedServletContainerWarDevelopmentIntegrationTests.java
0
spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/EmbeddedServletContainerWarPackagingIntegrationTests.java → spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/intTest/java/org/springframework/boot/context/embedded/EmbeddedServletContainerWarPackagingIntegrationTests.java
0
spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/EmbeddedServletContainerWarPackagingIntegrationTests.java → spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/intTest/java/org/springframework/boot/context/embedded/EmbeddedServletContainerWarPackagingIntegrationTests.java
4
spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/ExplodedApplicationLauncher.java → spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/intTest/java/org/springframework/boot/context/embedded/ExplodedApplicationLauncher.java
4
spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/ExplodedApplicationLauncher.java → spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/intTest/java/org/springframework/boot/context/embedded/ExplodedApplicationLauncher.java
8
spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/IdeApplicationLauncher.java → spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/intTest/java/org/springframework/boot/context/embedded/IdeApplicationLauncher.java
8
spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/IdeApplicationLauncher.java → spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/intTest/java/org/springframework/boot/context/embedded/IdeApplicationLauncher.java
4
spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/PackagedApplicationLauncher.java → spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/intTest/java/org/springframework/boot/context/embedded/PackagedApplicationLauncher.java
4
spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/test/java/org/springframework/boot/context/embedded/PackagedApplicationLauncher.java → spring-boot-tests/spring-boot-integration-tests/spring-boot-server-tests/src/intTest/java/org/springframework/boot/context/embedded/PackagedApplicationLauncher.java
@ -1,184 +0,0 @@ |
|||||||
/* |
|
||||||
* Copyright 2012-2021 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 |
|
||||||
* |
|
||||||
* https://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.context.embedded; |
|
||||||
|
|
||||||
import java.io.File; |
|
||||||
import java.io.FileOutputStream; |
|
||||||
import java.io.FileReader; |
|
||||||
import java.io.FileWriter; |
|
||||||
import java.io.IOException; |
|
||||||
import java.nio.file.Path; |
|
||||||
import java.util.Collections; |
|
||||||
import java.util.HashMap; |
|
||||||
import java.util.Map; |
|
||||||
import java.util.jar.JarOutputStream; |
|
||||||
import java.util.zip.ZipEntry; |
|
||||||
|
|
||||||
import com.samskivert.mustache.Mustache; |
|
||||||
import org.apache.maven.shared.invoker.DefaultInvocationRequest; |
|
||||||
import org.apache.maven.shared.invoker.DefaultInvoker; |
|
||||||
import org.apache.maven.shared.invoker.InvocationRequest; |
|
||||||
import org.apache.maven.shared.invoker.InvocationResult; |
|
||||||
import org.apache.maven.shared.invoker.MavenInvocationException; |
|
||||||
|
|
||||||
import org.springframework.util.FileCopyUtils; |
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat; |
|
||||||
|
|
||||||
/** |
|
||||||
* Builds a Spring Boot application using Maven. |
|
||||||
* |
|
||||||
* @author Andy Wilkinson |
|
||||||
*/ |
|
||||||
class ApplicationBuilder { |
|
||||||
|
|
||||||
private final Path temp; |
|
||||||
|
|
||||||
private final String packaging; |
|
||||||
|
|
||||||
private final String container; |
|
||||||
|
|
||||||
ApplicationBuilder(Path temp, String packaging, String container) { |
|
||||||
this.temp = temp; |
|
||||||
this.packaging = packaging; |
|
||||||
this.container = container; |
|
||||||
} |
|
||||||
|
|
||||||
File buildApplication() throws Exception { |
|
||||||
File containerDirectory = new File(this.temp.toFile(), this.container); |
|
||||||
if (containerDirectory.exists()) { |
|
||||||
return new File(containerDirectory, "app/target/app-0.0.1." + this.packaging); |
|
||||||
} |
|
||||||
return doBuildApplication(containerDirectory); |
|
||||||
} |
|
||||||
|
|
||||||
String getPackaging() { |
|
||||||
return this.packaging; |
|
||||||
} |
|
||||||
|
|
||||||
String getContainer() { |
|
||||||
return this.container; |
|
||||||
} |
|
||||||
|
|
||||||
private File doBuildApplication(File containerDirectory) throws IOException, MavenInvocationException { |
|
||||||
File resourcesJar = createResourcesJar(); |
|
||||||
File appDirectory = new File(containerDirectory, "app"); |
|
||||||
appDirectory.mkdirs(); |
|
||||||
File settingsXml = writeSettingsXml(appDirectory); |
|
||||||
writePom(appDirectory, resourcesJar); |
|
||||||
copyApplicationSource(appDirectory); |
|
||||||
packageApplication(appDirectory, settingsXml); |
|
||||||
return new File(appDirectory, "target/app-0.0.1." + this.packaging); |
|
||||||
} |
|
||||||
|
|
||||||
private File createResourcesJar() throws IOException { |
|
||||||
File resourcesJar = new File(this.temp.toFile(), "resources.jar"); |
|
||||||
if (resourcesJar.exists()) { |
|
||||||
return resourcesJar; |
|
||||||
} |
|
||||||
try (JarOutputStream resourcesJarStream = new JarOutputStream(new FileOutputStream(resourcesJar))) { |
|
||||||
resourcesJarStream.putNextEntry(new ZipEntry("META-INF/resources/")); |
|
||||||
resourcesJarStream.closeEntry(); |
|
||||||
resourcesJarStream.putNextEntry(new ZipEntry("META-INF/resources/nested-meta-inf-resource.txt")); |
|
||||||
resourcesJarStream.write("nested".getBytes()); |
|
||||||
resourcesJarStream.closeEntry(); |
|
||||||
if (!isWindows()) { |
|
||||||
resourcesJarStream.putNextEntry( |
|
||||||
new ZipEntry("META-INF/resources/nested-reserved-!#$%&()*+,:=?@[]-meta-inf-resource.txt")); |
|
||||||
resourcesJarStream.write("encoded-name".getBytes()); |
|
||||||
resourcesJarStream.closeEntry(); |
|
||||||
} |
|
||||||
return resourcesJar; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
private void writePom(File appDirectory, File resourcesJar) throws IOException { |
|
||||||
Map<String, Object> context = new HashMap<>(); |
|
||||||
context.put("packaging", this.packaging); |
|
||||||
context.put("container", this.container); |
|
||||||
context.put("bootVersion", Versions.getBootVersion()); |
|
||||||
context.put("resourcesJarPath", resourcesJar.getAbsolutePath()); |
|
||||||
try (FileWriter out = new FileWriter(new File(appDirectory, "pom.xml")); |
|
||||||
FileReader templateReader = new FileReader("src/test/resources/pom-template.xml")) { |
|
||||||
Mustache.compiler().escapeHTML(false).compile(templateReader).execute(context, out); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
private File writeSettingsXml(File appDirectory) throws IOException { |
|
||||||
Map<String, Object> context = new HashMap<>(); |
|
||||||
context.put("repository", new File("build/test-repository").toURI().toURL()); |
|
||||||
context.put("localRepository", new File("build/local-m2-repository").getAbsolutePath()); |
|
||||||
File settingsXml = new File(appDirectory, "settings.xml"); |
|
||||||
try (FileWriter out = new FileWriter(settingsXml); |
|
||||||
FileReader templateReader = new FileReader("src/test/resources/settings-template.xml")) { |
|
||||||
Mustache.compiler().escapeHTML(false).compile(templateReader).execute(context, out); |
|
||||||
} |
|
||||||
return settingsXml; |
|
||||||
} |
|
||||||
|
|
||||||
private void copyApplicationSource(File appDirectory) throws IOException { |
|
||||||
File examplePackage = new File(appDirectory, "src/main/java/com/example"); |
|
||||||
examplePackage.mkdirs(); |
|
||||||
FileCopyUtils.copy(new File("src/test/java/com/example/ResourceHandlingApplication.java"), |
|
||||||
new File(examplePackage, "ResourceHandlingApplication.java")); |
|
||||||
// To allow aliased resources on Concourse Windows CI (See gh-15553) to be served
|
|
||||||
// as static resources.
|
|
||||||
if (this.container.equals("jetty")) { |
|
||||||
FileCopyUtils.copy(new File("src/test/java/com/example/JettyServerCustomizerConfig.java"), |
|
||||||
new File(examplePackage, "JettyServerCustomizerConfig.java")); |
|
||||||
} |
|
||||||
if ("war".equals(this.packaging)) { |
|
||||||
File srcMainWebapp = new File(appDirectory, "src/main/webapp"); |
|
||||||
srcMainWebapp.mkdirs(); |
|
||||||
FileCopyUtils.copy("webapp resource", new FileWriter(new File(srcMainWebapp, "webapp-resource.txt"))); |
|
||||||
} |
|
||||||
copyAutoConfigurationFiles(appDirectory); |
|
||||||
return; |
|
||||||
} |
|
||||||
|
|
||||||
private void copyAutoConfigurationFiles(File appDirectory) throws IOException { |
|
||||||
File autoConfigPackage = new File(appDirectory, "src/main/java/com/autoconfig"); |
|
||||||
autoConfigPackage.mkdirs(); |
|
||||||
FileCopyUtils.copy(new File("src/test/java/com/autoconfig/ExampleAutoConfiguration.java"), |
|
||||||
new File(autoConfigPackage, "ExampleAutoConfiguration.java")); |
|
||||||
File srcMainResources = new File(appDirectory, "src/main/resources"); |
|
||||||
srcMainResources.mkdirs(); |
|
||||||
File metaInf = new File(srcMainResources, "META-INF"); |
|
||||||
metaInf.mkdirs(); |
|
||||||
FileCopyUtils.copy(new File("src/test/resources/META-INF/spring.factories"), |
|
||||||
new File(metaInf, "spring.factories")); |
|
||||||
} |
|
||||||
|
|
||||||
private void packageApplication(File appDirectory, File settingsXml) throws MavenInvocationException { |
|
||||||
InvocationRequest invocation = new DefaultInvocationRequest(); |
|
||||||
invocation.setBaseDirectory(appDirectory); |
|
||||||
invocation.setGoals(Collections.singletonList("package")); |
|
||||||
if (settingsXml != null) { |
|
||||||
invocation.setUserSettingsFile(settingsXml); |
|
||||||
} |
|
||||||
invocation.setUpdateSnapshots(true); |
|
||||||
DefaultInvoker invoker = new DefaultInvoker(); |
|
||||||
invoker.setMavenHome(new File("build/maven-binaries/apache-maven-3.6.2")); |
|
||||||
InvocationResult execute = invoker.execute(invocation); |
|
||||||
assertThat(execute.getExitCode()).isEqualTo(0); |
|
||||||
} |
|
||||||
|
|
||||||
private boolean isWindows() { |
|
||||||
return File.separatorChar == '\\'; |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
||||||
@ -1,87 +0,0 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> |
|
||||||
<modelVersion>4.0.0</modelVersion> |
|
||||||
<parent> |
|
||||||
<groupId>org.springframework.boot</groupId> |
|
||||||
<artifactId>spring-boot-starter-parent</artifactId> |
|
||||||
<version>{{bootVersion}}</version> |
|
||||||
<relativePath /> |
|
||||||
</parent> |
|
||||||
<groupId>com.example</groupId> |
|
||||||
<artifactId>app</artifactId> |
|
||||||
<version>0.0.1</version> |
|
||||||
<packaging>{{packaging}}</packaging> |
|
||||||
<properties> |
|
||||||
<resourcesJarPath>{{resourcesJarPath}}</resourcesJarPath> |
|
||||||
</properties> |
|
||||||
<dependencies> |
|
||||||
<dependency> |
|
||||||
<groupId>org.springframework.boot</groupId> |
|
||||||
<artifactId>spring-boot-starter</artifactId> |
|
||||||
</dependency> |
|
||||||
<dependency> |
|
||||||
<groupId>org.springframework.boot</groupId> |
|
||||||
<artifactId>spring-boot-starter-{{container}}</artifactId> |
|
||||||
</dependency> |
|
||||||
<dependency> |
|
||||||
<groupId>org.springframework</groupId> |
|
||||||
<artifactId>spring-web</artifactId> |
|
||||||
</dependency> |
|
||||||
<dependency> |
|
||||||
<groupId>javax.servlet</groupId> |
|
||||||
<artifactId>javax.servlet-api</artifactId> |
|
||||||
<scope>provided</scope> |
|
||||||
</dependency> |
|
||||||
<dependency> |
|
||||||
<groupId>com.example</groupId> |
|
||||||
<artifactId>resources</artifactId> |
|
||||||
<version>1.0</version> |
|
||||||
<scope>system</scope> |
|
||||||
<systemPath>${resourcesJarPath}</systemPath> |
|
||||||
</dependency> |
|
||||||
</dependencies> |
|
||||||
<build> |
|
||||||
<plugins> |
|
||||||
<plugin> |
|
||||||
<groupId>org.springframework.boot</groupId> |
|
||||||
<artifactId>spring-boot-maven-plugin</artifactId> |
|
||||||
<configuration> |
|
||||||
<includeSystemScope>true</includeSystemScope> |
|
||||||
</configuration> |
|
||||||
</plugin> |
|
||||||
</plugins> |
|
||||||
</build> |
|
||||||
<repositories> |
|
||||||
<repository> |
|
||||||
<id>spring-snapshots</id> |
|
||||||
<url>https://repo.spring.io/snapshot</url> |
|
||||||
<snapshots> |
|
||||||
<enabled>true</enabled> |
|
||||||
</snapshots> |
|
||||||
</repository> |
|
||||||
<repository> |
|
||||||
<id>spring-milestones</id> |
|
||||||
<url>https://repo.spring.io/milestone</url> |
|
||||||
<snapshots> |
|
||||||
<enabled>false</enabled> |
|
||||||
</snapshots> |
|
||||||
</repository> |
|
||||||
</repositories> |
|
||||||
<pluginRepositories> |
|
||||||
<pluginRepository> |
|
||||||
<id>spring-snapshots</id> |
|
||||||
<url>https://repo.spring.io/snapshot</url> |
|
||||||
<snapshots> |
|
||||||
<enabled>true</enabled> |
|
||||||
</snapshots> |
|
||||||
</pluginRepository> |
|
||||||
<pluginRepository> |
|
||||||
<id>spring-milestones</id> |
|
||||||
<url>https://repo.spring.io/milestone</url> |
|
||||||
<snapshots> |
|
||||||
<enabled>false</enabled> |
|
||||||
</snapshots> |
|
||||||
</pluginRepository> |
|
||||||
</pluginRepositories> |
|
||||||
</project> |
|
||||||
@ -1,31 +0,0 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||||
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
|
||||||
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd"> |
|
||||||
<localRepository>{{localRepository}}</localRepository> |
|
||||||
<profiles> |
|
||||||
<profile> |
|
||||||
<id>repository</id> |
|
||||||
<activation> |
|
||||||
<activeByDefault>true</activeByDefault> |
|
||||||
</activation> |
|
||||||
<repositories> |
|
||||||
<repository> |
|
||||||
<id>repository</id> |
|
||||||
<url>{{repository}}</url> |
|
||||||
<snapshots> |
|
||||||
<enabled>true</enabled> |
|
||||||
</snapshots> |
|
||||||
</repository> |
|
||||||
</repositories> |
|
||||||
<pluginRepositories> |
|
||||||
<pluginRepository> |
|
||||||
<id>repository</id> |
|
||||||
<url>{{repository}}</url> |
|
||||||
<snapshots> |
|
||||||
<enabled>true</enabled> |
|
||||||
</snapshots> |
|
||||||
</pluginRepository> |
|
||||||
</pluginRepositories> |
|
||||||
</profile> |
|
||||||
</profiles> |
|
||||||
</settings> |
|
||||||
Loading…
Reference in new issue