23
23
import org .gradle .api .artifacts .repositories .MavenArtifactRepository ;
24
24
25
25
/**
26
- * Extension to add {@code springRepoistoryTransformers } utility methods.
26
+ * Extension to add {@code springRepositoryTransformers } utility methods.
27
27
*
28
28
* @author Phillip Webb
29
29
*/
30
- public class RepoistoryTransformersExtension {
30
+ public class RepositoryTransformersExtension {
31
31
32
32
private static final String MARKER = "{spring.mavenRepositories}" ;
33
33
34
+ private static final String MARKER_PLUGIN = "{spring.mavenPluginRepositories}" ;
35
+
34
36
private final Project project ;
35
37
36
38
@ Inject
37
- public RepoistoryTransformersExtension (Project project ) {
39
+ public RepositoryTransformersExtension (Project project ) {
38
40
this .project = project ;
39
41
}
40
42
@@ -65,24 +67,32 @@ public Transformer<String, String> mavenSettings() {
65
67
66
68
private String transformMavenSettings (String line ) {
67
69
if (line .contains (MARKER )) {
68
- StringBuilder result = new StringBuilder ();
69
- String indent = getIndent (line );
70
- this .project .getRepositories ().withType (MavenArtifactRepository .class , (repository ) -> {
71
- String name = repository .getName ();
72
- if (name .startsWith ("spring-" )) {
73
- result .append (!result .isEmpty () ? "\n " : "" );
74
- result .append (mavenRepositoryXml (indent , repository ));
75
- }
76
- });
77
- return result .toString ();
70
+ return transformMarker (line , false );
71
+ }
72
+ if (line .contains (MARKER_PLUGIN )) {
73
+ return transformMarker (line , true );
78
74
}
79
75
return line ;
80
76
}
81
77
82
- private String mavenRepositoryXml (String indent , MavenArtifactRepository repository ) {
78
+ private String transformMarker (String line , boolean pluginRepository ) {
79
+ StringBuilder result = new StringBuilder ();
80
+ String indent = getIndent (line );
81
+ this .project .getRepositories ().withType (MavenArtifactRepository .class , (repository ) -> {
82
+ String name = repository .getName ();
83
+ if (name .startsWith ("spring-" )) {
84
+ result .append (!result .isEmpty () ? "\n " : "" );
85
+ result .append (mavenRepositoryXml (indent , repository , pluginRepository ));
86
+ }
87
+ });
88
+ return result .toString ();
89
+ }
90
+
91
+ private String mavenRepositoryXml (String indent , MavenArtifactRepository repository , boolean pluginRepository ) {
92
+ String rootTag = pluginRepository ? "pluginRepository" : "repository" ;
83
93
boolean snapshots = repository .getName ().endsWith ("-snapshot" );
84
94
StringBuilder xml = new StringBuilder ();
85
- xml .append ("%s<repository >%n" .formatted (indent ));
95
+ xml .append ("%s<%s >%n" .formatted (indent , rootTag ));
86
96
xml .append ("%s\t <id>%s</id>%n" .formatted (indent , repository .getName ()));
87
97
xml .append ("%s\t <url>%s</url>%n" .formatted (indent , repository .getUrl ()));
88
98
xml .append ("%s\t <releases>%n" .formatted (indent ));
@@ -91,7 +101,7 @@ private String mavenRepositoryXml(String indent, MavenArtifactRepository reposit
91
101
xml .append ("%s\t <snapshots>%n" .formatted (indent ));
92
102
xml .append ("%s\t \t <enabled>%s</enabled>%n" .formatted (indent , snapshots ));
93
103
xml .append ("%s\t </snapshots>%n" .formatted (indent ));
94
- xml .append ("%s</repository >" .formatted (indent ));
104
+ xml .append ("%s</%s >" .formatted (indent , rootTag ));
95
105
return xml .toString ();
96
106
}
97
107
@@ -100,7 +110,7 @@ private String getIndent(String line) {
100
110
}
101
111
102
112
static void apply (Project project ) {
103
- project .getExtensions ().create ("springRepoistoryTransformers " , RepoistoryTransformersExtension .class , project );
113
+ project .getExtensions ().create ("springRepositoryTransformers " , RepositoryTransformersExtension .class , project );
104
114
}
105
115
106
116
}
0 commit comments