commit
a66d3d2f00
|
@ -50,7 +50,7 @@ public class ConventionsPlugin implements Plugin<Project> {
|
||||||
new KotlinConventions().apply(project);
|
new KotlinConventions().apply(project);
|
||||||
new WarConventions().apply(project);
|
new WarConventions().apply(project);
|
||||||
new EclipseConventions().apply(project);
|
new EclipseConventions().apply(project);
|
||||||
RepoistoryTransformersExtension.apply(project);
|
RepositoryTransformersExtension.apply(project);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,18 +23,20 @@ import org.gradle.api.Transformer;
|
||||||
import org.gradle.api.artifacts.repositories.MavenArtifactRepository;
|
import org.gradle.api.artifacts.repositories.MavenArtifactRepository;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extension to add {@code springRepoistoryTransformers} utility methods.
|
* Extension to add {@code springRepositoryTransformers} utility methods.
|
||||||
*
|
*
|
||||||
* @author Phillip Webb
|
* @author Phillip Webb
|
||||||
*/
|
*/
|
||||||
public class RepoistoryTransformersExtension {
|
public class RepositoryTransformersExtension {
|
||||||
|
|
||||||
private static final String MARKER = "{spring.mavenRepositories}";
|
private static final String MARKER = "{spring.mavenRepositories}";
|
||||||
|
|
||||||
|
private static final String MARKER_PLUGIN = "{spring.mavenPluginRepositories}";
|
||||||
|
|
||||||
private final Project project;
|
private final Project project;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public RepoistoryTransformersExtension(Project project) {
|
public RepositoryTransformersExtension(Project project) {
|
||||||
this.project = project;
|
this.project = project;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,24 +67,32 @@ public class RepoistoryTransformersExtension {
|
||||||
|
|
||||||
private String transformMavenSettings(String line) {
|
private String transformMavenSettings(String line) {
|
||||||
if (line.contains(MARKER)) {
|
if (line.contains(MARKER)) {
|
||||||
|
return transformMarker(line, false);
|
||||||
|
}
|
||||||
|
if (line.contains(MARKER_PLUGIN)) {
|
||||||
|
return transformMarker(line, true);
|
||||||
|
}
|
||||||
|
return line;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String transformMarker(String line, boolean pluginRepository) {
|
||||||
StringBuilder result = new StringBuilder();
|
StringBuilder result = new StringBuilder();
|
||||||
String indent = getIndent(line);
|
String indent = getIndent(line);
|
||||||
this.project.getRepositories().withType(MavenArtifactRepository.class, (repository) -> {
|
this.project.getRepositories().withType(MavenArtifactRepository.class, (repository) -> {
|
||||||
String name = repository.getName();
|
String name = repository.getName();
|
||||||
if (name.startsWith("spring-")) {
|
if (name.startsWith("spring-")) {
|
||||||
result.append(!result.isEmpty() ? "\n" : "");
|
result.append(!result.isEmpty() ? "\n" : "");
|
||||||
result.append(mavenRepositoryXml(indent, repository));
|
result.append(mavenRepositoryXml(indent, repository, pluginRepository));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return result.toString();
|
return result.toString();
|
||||||
}
|
}
|
||||||
return line;
|
|
||||||
}
|
|
||||||
|
|
||||||
private String mavenRepositoryXml(String indent, MavenArtifactRepository repository) {
|
private String mavenRepositoryXml(String indent, MavenArtifactRepository repository, boolean pluginRepository) {
|
||||||
|
String rootTag = pluginRepository ? "pluginRepository" : "repository";
|
||||||
boolean snapshots = repository.getName().endsWith("-snapshot");
|
boolean snapshots = repository.getName().endsWith("-snapshot");
|
||||||
StringBuilder xml = new StringBuilder();
|
StringBuilder xml = new StringBuilder();
|
||||||
xml.append("%s<repository>%n".formatted(indent));
|
xml.append("%s<%s>%n".formatted(indent, rootTag));
|
||||||
xml.append("%s\t<id>%s</id>%n".formatted(indent, repository.getName()));
|
xml.append("%s\t<id>%s</id>%n".formatted(indent, repository.getName()));
|
||||||
xml.append("%s\t<url>%s</url>%n".formatted(indent, repository.getUrl()));
|
xml.append("%s\t<url>%s</url>%n".formatted(indent, repository.getUrl()));
|
||||||
xml.append("%s\t<releases>%n".formatted(indent));
|
xml.append("%s\t<releases>%n".formatted(indent));
|
||||||
|
@ -91,7 +101,7 @@ public class RepoistoryTransformersExtension {
|
||||||
xml.append("%s\t<snapshots>%n".formatted(indent));
|
xml.append("%s\t<snapshots>%n".formatted(indent));
|
||||||
xml.append("%s\t\t<enabled>%s</enabled>%n".formatted(indent, snapshots));
|
xml.append("%s\t\t<enabled>%s</enabled>%n".formatted(indent, snapshots));
|
||||||
xml.append("%s\t</snapshots>%n".formatted(indent));
|
xml.append("%s\t</snapshots>%n".formatted(indent));
|
||||||
xml.append("%s</repository>".formatted(indent));
|
xml.append("%s</%s>".formatted(indent, rootTag));
|
||||||
return xml.toString();
|
return xml.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -100,7 +110,7 @@ public class RepoistoryTransformersExtension {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void apply(Project project) {
|
static void apply(Project project) {
|
||||||
project.getExtensions().create("springRepoistoryTransformers", RepoistoryTransformersExtension.class, project);
|
project.getExtensions().create("springRepositoryTransformers", RepositoryTransformersExtension.class, project);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -28,7 +28,7 @@ dependencies {
|
||||||
task syncIntegrationTestSources(type: Sync) {
|
task syncIntegrationTestSources(type: Sync) {
|
||||||
destinationDir file("${buildDir}/it")
|
destinationDir file("${buildDir}/it")
|
||||||
from file("src/it")
|
from file("src/it")
|
||||||
filter(springRepoistoryTransformers.ant())
|
filter(springRepositoryTransformers.ant())
|
||||||
}
|
}
|
||||||
|
|
||||||
processResources {
|
processResources {
|
||||||
|
|
|
@ -94,7 +94,7 @@ ext {
|
||||||
task copySettingsXml(type: Copy) {
|
task copySettingsXml(type: Copy) {
|
||||||
from file("src/intTest/projects/settings.xml")
|
from file("src/intTest/projects/settings.xml")
|
||||||
into "${buildDir}/generated-resources/settings"
|
into "${buildDir}/generated-resources/settings"
|
||||||
filter(springRepoistoryTransformers.mavenSettings())
|
filter(springRepositoryTransformers.mavenSettings())
|
||||||
}
|
}
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
<enabled>true</enabled>
|
<enabled>true</enabled>
|
||||||
</snapshots>
|
</snapshots>
|
||||||
</pluginRepository>
|
</pluginRepository>
|
||||||
<!-- {spring.mavenRepositories} -->
|
<!-- {spring.mavenPluginRepositories} -->
|
||||||
</pluginRepositories>
|
</pluginRepositories>
|
||||||
</profile>
|
</profile>
|
||||||
</profiles>
|
</profiles>
|
||||||
|
|
|
@ -50,7 +50,7 @@ task syncAntSources(type: Sync) {
|
||||||
destinationDir file("${buildDir}/ant")
|
destinationDir file("${buildDir}/ant")
|
||||||
from project.layout.projectDirectory
|
from project.layout.projectDirectory
|
||||||
include "*.xml"
|
include "*.xml"
|
||||||
filter(springRepoistoryTransformers.ant())
|
filter(springRepositoryTransformers.ant())
|
||||||
}
|
}
|
||||||
|
|
||||||
task antRun(type: JavaExec) {
|
task antRun(type: JavaExec) {
|
||||||
|
|
Loading…
Reference in New Issue