Limit artifact types resolved from repositories
Use `content.snapshotsOnly()` or `content.releasesOnly()` to limit when maven repositories can be used.
This commit is contained in:
parent
80e8ab8779
commit
810fedacee
@ -100,29 +100,29 @@ class SpringRepositoriesExtension {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void addRepositories(action) {
|
private void addRepositories(action) {
|
||||||
addCommercialRepository("release", "/spring-enterprise-maven-prod-local", action)
|
addCommercialRepository("release", false, "/spring-enterprise-maven-prod-local", action)
|
||||||
if (this.version.contains("-")) {
|
if (this.version.contains("-")) {
|
||||||
addOssRepository("milestone", "/milestone", action)
|
addOssRepository("milestone", false, "/milestone", action)
|
||||||
}
|
}
|
||||||
if (this.version.endsWith("-SNAPSHOT")) {
|
if (this.version.endsWith("-SNAPSHOT")) {
|
||||||
addCommercialRepository("snapshot", "/spring-enterprise-maven-dev-local", action)
|
addCommercialRepository("snapshot", true, "/spring-enterprise-maven-dev-local", action)
|
||||||
addOssRepository("snapshot", "/snapshot", action)
|
addOssRepository("snapshot", true, "/snapshot", action)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addOssRepository(id, path, action) {
|
private void addOssRepository(id, snapshot, path, action) {
|
||||||
def name = "spring-oss-" + id
|
def name = "spring-oss-" + id
|
||||||
def url = "https://repo.spring.io" + path
|
def url = "https://repo.spring.io" + path
|
||||||
addRepository(name, url, action)
|
addRepository(name, snapshot, url, action)
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addCommercialRepository(id, path, action) {
|
private void addCommercialRepository(id, snapshot, path, action) {
|
||||||
if (!"commercial".equalsIgnoreCase(this.buildType)) return
|
if (!"commercial".equalsIgnoreCase(this.buildType)) return
|
||||||
def name = "spring-commercial-" + id
|
def name = "spring-commercial-" + id
|
||||||
def url = fromEnv("COMMERCIAL_%SREPO_URL", id, "https://usw1.packages.broadcom.com" + path)
|
def url = fromEnv("COMMERCIAL_%SREPO_URL", id, "https://usw1.packages.broadcom.com" + path)
|
||||||
def username = fromEnv("COMMERCIAL_%SREPO_USERNAME", id)
|
def username = fromEnv("COMMERCIAL_%SREPO_USERNAME", id)
|
||||||
def password = fromEnv("COMMERCIAL_%SREPO_PASSWORD", id)
|
def password = fromEnv("COMMERCIAL_%SREPO_PASSWORD", id)
|
||||||
addRepository(name, url, { maven ->
|
addRepository(name, snapshot, url, { maven ->
|
||||||
maven.credentials { credentials ->
|
maven.credentials { credentials ->
|
||||||
credentials.setUsername(username)
|
credentials.setUsername(username)
|
||||||
credentials.setPassword(password)
|
credentials.setPassword(password)
|
||||||
@ -131,10 +131,17 @@ class SpringRepositoriesExtension {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addRepository(name, url, action) {
|
private void addRepository(name, snapshot, url, action) {
|
||||||
this.repositories.maven { maven ->
|
this.repositories.maven { maven ->
|
||||||
maven.setName(name)
|
maven.setName(name)
|
||||||
maven.setUrl(url)
|
maven.setUrl(url)
|
||||||
|
maven.content { content ->
|
||||||
|
if (snapshot) {
|
||||||
|
content.snapshotsOnly()
|
||||||
|
} else {
|
||||||
|
content.releasesOnly()
|
||||||
|
}
|
||||||
|
}
|
||||||
action(maven)
|
action(maven)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,12 @@
|
|||||||
package org.springframework.boot.build;
|
package org.springframework.boot.build;
|
||||||
|
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Comparator;
|
||||||
|
import java.util.List;
|
||||||
import java.util.function.BiFunction;
|
import java.util.function.BiFunction;
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
@ -96,19 +101,34 @@ public class RepositoryTransformersExtension {
|
|||||||
private String transform(String line, BiFunction<MavenArtifactRepository, String, String> generator) {
|
private String transform(String line, BiFunction<MavenArtifactRepository, String, String> generator) {
|
||||||
StringBuilder result = new StringBuilder();
|
StringBuilder result = new StringBuilder();
|
||||||
String indent = getIndent(line);
|
String indent = getIndent(line);
|
||||||
this.project.getRepositories().withType(MavenArtifactRepository.class, (repository) -> {
|
getSpringRepositories().forEach((repository) -> {
|
||||||
String name = repository.getName();
|
String fragment = generator.apply(repository, indent);
|
||||||
if (name.startsWith("spring-")) {
|
if (fragment != null) {
|
||||||
String fragment = generator.apply(repository, indent);
|
result.append(!result.isEmpty() ? "\n" : "");
|
||||||
if (fragment != null) {
|
result.append(fragment);
|
||||||
result.append(!result.isEmpty() ? "\n" : "");
|
|
||||||
result.append(fragment);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return result.toString();
|
return result.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<MavenArtifactRepository> getSpringRepositories() {
|
||||||
|
List<MavenArtifactRepository> springRepositories = new ArrayList<>(this.project.getRepositories()
|
||||||
|
.withType(MavenArtifactRepository.class)
|
||||||
|
.stream()
|
||||||
|
.filter(this::isSpringReposirory)
|
||||||
|
.toList());
|
||||||
|
Function<MavenArtifactRepository, Boolean> bySnapshots = (repository) -> repository.getName()
|
||||||
|
.contains("snapshot");
|
||||||
|
Function<MavenArtifactRepository, String> byName = null;
|
||||||
|
Collections.sort(springRepositories, Comparator.comparing(bySnapshots).thenComparing(byName));
|
||||||
|
System.err.println(">>>> " + springRepositories);
|
||||||
|
return springRepositories;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isSpringReposirory(MavenArtifactRepository repository) {
|
||||||
|
return (repository.getName().startsWith("spring-"));
|
||||||
|
}
|
||||||
|
|
||||||
private String getIndent(String line) {
|
private String getIndent(String line) {
|
||||||
return line.substring(0, line.length() - line.stripLeading().length());
|
return line.substring(0, line.length() - line.stripLeading().length());
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user