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) {
|
||||
addCommercialRepository("release", "/spring-enterprise-maven-prod-local", action)
|
||||
addCommercialRepository("release", false, "/spring-enterprise-maven-prod-local", action)
|
||||
if (this.version.contains("-")) {
|
||||
addOssRepository("milestone", "/milestone", action)
|
||||
addOssRepository("milestone", false, "/milestone", action)
|
||||
}
|
||||
if (this.version.endsWith("-SNAPSHOT")) {
|
||||
addCommercialRepository("snapshot", "/spring-enterprise-maven-dev-local", action)
|
||||
addOssRepository("snapshot", "/snapshot", action)
|
||||
addCommercialRepository("snapshot", true, "/spring-enterprise-maven-dev-local", 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 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
|
||||
def name = "spring-commercial-" + id
|
||||
def url = fromEnv("COMMERCIAL_%SREPO_URL", id, "https://usw1.packages.broadcom.com" + path)
|
||||
def username = fromEnv("COMMERCIAL_%SREPO_USERNAME", id)
|
||||
def password = fromEnv("COMMERCIAL_%SREPO_PASSWORD", id)
|
||||
addRepository(name, url, { maven ->
|
||||
addRepository(name, snapshot, url, { maven ->
|
||||
maven.credentials { credentials ->
|
||||
credentials.setUsername(username)
|
||||
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 ->
|
||||
maven.setName(name)
|
||||
maven.setUrl(url)
|
||||
maven.content { content ->
|
||||
if (snapshot) {
|
||||
content.snapshotsOnly()
|
||||
} else {
|
||||
content.releasesOnly()
|
||||
}
|
||||
}
|
||||
action(maven)
|
||||
}
|
||||
}
|
||||
|
@ -17,7 +17,12 @@
|
||||
package org.springframework.boot.build;
|
||||
|
||||
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.Function;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
@ -96,19 +101,34 @@ public class RepositoryTransformersExtension {
|
||||
private String transform(String line, BiFunction<MavenArtifactRepository, String, String> generator) {
|
||||
StringBuilder result = new StringBuilder();
|
||||
String indent = getIndent(line);
|
||||
this.project.getRepositories().withType(MavenArtifactRepository.class, (repository) -> {
|
||||
String name = repository.getName();
|
||||
if (name.startsWith("spring-")) {
|
||||
getSpringRepositories().forEach((repository) -> {
|
||||
String fragment = generator.apply(repository, indent);
|
||||
if (fragment != null) {
|
||||
result.append(!result.isEmpty() ? "\n" : "");
|
||||
result.append(fragment);
|
||||
}
|
||||
}
|
||||
});
|
||||
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) {
|
||||
return line.substring(0, line.length() - line.stripLeading().length());
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user