@@ -81,19 +81,21 @@ public static class SparkVariant {
81
81
private final String scalaVersion ;
82
82
private final String scalaMajorVersion ;
83
83
private final String capability ;
84
+ private final boolean classifySparkVersion ;
84
85
85
86
public SparkVariant (String name ) {
86
87
throw new GradleException ("Cannot create variant named [" + name + "]. Do not instantiate objects directly. " +
87
88
"You must configure this via the SparkVariantPluginExtension." );
88
89
}
89
90
90
- public SparkVariant (CharSequence name , boolean isDefaultVariant , String sparkVersion , String scalaVersion , String capability ) {
91
+ public SparkVariant (CharSequence name , boolean isDefaultVariant , String sparkVersion , String scalaVersion , String capability , boolean classifySparkVersion ) {
91
92
this .name = name ;
92
93
this .isDefaultVariant = isDefaultVariant ;
93
94
this .sparkVersion = sparkVersion ;
94
95
this .scalaVersion = scalaVersion ;
95
96
this .scalaMajorVersion = scalaVersion .substring (0 , scalaVersion .lastIndexOf ('.' ));
96
97
this .capability = capability ;
98
+ this .classifySparkVersion = classifySparkVersion ;
97
99
}
98
100
99
101
public String getName () {
@@ -124,6 +126,10 @@ public String getCapability() {
124
126
return capability ;
125
127
}
126
128
129
+ public boolean shouldClassifySparkVersion () {
130
+ return classifySparkVersion ;
131
+ }
132
+
127
133
public String getSourceSetName (String sourceSetName ) {
128
134
String result ;
129
135
if (isDefaultVariant ) {
@@ -184,22 +190,38 @@ public void capabilityGroup(String capability) {
184
190
}
185
191
186
192
public SparkVariant setDefaultVariant (String variantName , String sparkVersion , String scalaVersion ) {
193
+ return setDefaultVariant (variantName , sparkVersion , scalaVersion , false );
194
+ }
195
+
196
+ public SparkVariant setCoreDefaultVariant (String variantName , String sparkVersion , String scalaVersion ) {
197
+ return setDefaultVariant (variantName , sparkVersion , scalaVersion , true );
198
+ }
199
+
200
+ public SparkVariant setDefaultVariant (String variantName , String sparkVersion , String scalaVersion , boolean classifySparkVersion ) {
187
201
if (defaultVariant != null ) {
188
202
throw new GradleException ("Cannot set default variant multiple times" );
189
203
}
190
204
if (capability == null ) {
191
205
throw new GradleException ("Must set capability group before adding variant definitions" );
192
206
}
193
- defaultVariant = new SparkVariant (variantName , true , sparkVersion , scalaVersion , capability );
207
+ defaultVariant = new SparkVariant (variantName , true , sparkVersion , scalaVersion , capability , classifySparkVersion );
194
208
variants .add (defaultVariant );
195
209
return defaultVariant ;
196
210
}
197
211
198
212
public SparkVariant addFeatureVariant (String variantName , String sparkVersion , String scalaVersion ) {
213
+ return addFeatureVariant (variantName , sparkVersion , scalaVersion , false );
214
+ }
215
+
216
+ public SparkVariant addCoreFeatureVariant (String variantName , String sparkVersion , String scalaVersion ) {
217
+ return addFeatureVariant (variantName , sparkVersion , scalaVersion , true );
218
+ }
219
+
220
+ public SparkVariant addFeatureVariant (String variantName , String sparkVersion , String scalaVersion , boolean classifySparkVersion ) {
199
221
if (capability == null ) {
200
222
throw new GradleException ("Must set capability group before adding variant definitions" );
201
223
}
202
- SparkVariant variant = new SparkVariant (variantName , false , sparkVersion , scalaVersion , capability );
224
+ SparkVariant variant = new SparkVariant (variantName , false , sparkVersion , scalaVersion , capability , classifySparkVersion );
203
225
variants .add (variant );
204
226
return variant ;
205
227
}
@@ -437,7 +459,8 @@ private static void registerVariantScaladoc(Project project, TaskContainer tasks
437
459
});
438
460
}
439
461
440
- private static void correctScalaJarClassifiers (Jar jar , SparkVariant sparkVariant ) {
462
+ private static void removeVariantNameFromClassifier (Jar jar , SparkVariant sparkVariant ) {
463
+ // the default variant doesn't have classifiers on it to remove
441
464
if (sparkVariant .isDefaultVariant () == false ) {
442
465
String classifier = jar .getArchiveClassifier ().get ();
443
466
classifier = classifier .replace (sparkVariant .name , "" );
@@ -446,15 +469,21 @@ private static void correctScalaJarClassifiers(Jar jar, SparkVariant sparkVarian
446
469
}
447
470
jar .getArchiveClassifier ().set (classifier );
448
471
}
472
+ }
473
+
474
+ private static void correctScalaJarClassifiers (Jar jar , SparkVariant sparkVariant ) {
475
+ if (sparkVariant .shouldClassifySparkVersion () == false ) {
476
+ removeVariantNameFromClassifier (jar , sparkVariant );
477
+ }
449
478
String baseName = jar .getArchiveBaseName ().get ();
450
479
baseName = baseName + "_" + sparkVariant .scalaMajorVersion ;
451
480
jar .getArchiveBaseName ().set (baseName );
452
481
}
453
482
454
483
private static void configureScalaJarClassifiers (Project project , final SparkVariant sparkVariant ) {
455
484
TaskCollection <Jar > jars = project .getTasks ().withType (Jar .class );
456
- correctScalaJarClassifiers ( jars .getByName (sparkVariant .taskName ("jar" )) , sparkVariant );
457
- correctScalaJarClassifiers ( jars .getByName (sparkVariant .taskName ("javadocJar" )) , sparkVariant );
458
- correctScalaJarClassifiers ( jars .getByName (sparkVariant .taskName ("sourcesJar" )) , sparkVariant );
485
+ jars .named (sparkVariant .taskName ("jar" ), ( Jar jar ) -> correctScalaJarClassifiers ( jar , sparkVariant ) );
486
+ jars .named (sparkVariant .taskName ("javadocJar" ), ( Jar jar ) -> correctScalaJarClassifiers ( jar , sparkVariant ) );
487
+ jars .named (sparkVariant .taskName ("sourcesJar" ), ( Jar jar ) -> correctScalaJarClassifiers ( jar , sparkVariant ) );
459
488
}
460
489
}
0 commit comments