@@ -81,19 +81,21 @@ public static class SparkVariant {
8181 private final String scalaVersion ;
8282 private final String scalaMajorVersion ;
8383 private final String capability ;
84+ private final boolean classifySparkVersion ;
8485
8586 public SparkVariant (String name ) {
8687 throw new GradleException ("Cannot create variant named [" + name + "]. Do not instantiate objects directly. " +
8788 "You must configure this via the SparkVariantPluginExtension." );
8889 }
8990
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 ) {
9192 this .name = name ;
9293 this .isDefaultVariant = isDefaultVariant ;
9394 this .sparkVersion = sparkVersion ;
9495 this .scalaVersion = scalaVersion ;
9596 this .scalaMajorVersion = scalaVersion .substring (0 , scalaVersion .lastIndexOf ('.' ));
9697 this .capability = capability ;
98+ this .classifySparkVersion = classifySparkVersion ;
9799 }
98100
99101 public String getName () {
@@ -124,6 +126,10 @@ public String getCapability() {
124126 return capability ;
125127 }
126128
129+ public boolean shouldClassifySparkVersion () {
130+ return classifySparkVersion ;
131+ }
132+
127133 public String getSourceSetName (String sourceSetName ) {
128134 String result ;
129135 if (isDefaultVariant ) {
@@ -184,22 +190,38 @@ public void capabilityGroup(String capability) {
184190 }
185191
186192 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 ) {
187201 if (defaultVariant != null ) {
188202 throw new GradleException ("Cannot set default variant multiple times" );
189203 }
190204 if (capability == null ) {
191205 throw new GradleException ("Must set capability group before adding variant definitions" );
192206 }
193- defaultVariant = new SparkVariant (variantName , true , sparkVersion , scalaVersion , capability );
207+ defaultVariant = new SparkVariant (variantName , true , sparkVersion , scalaVersion , capability , classifySparkVersion );
194208 variants .add (defaultVariant );
195209 return defaultVariant ;
196210 }
197211
198212 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 ) {
199221 if (capability == null ) {
200222 throw new GradleException ("Must set capability group before adding variant definitions" );
201223 }
202- SparkVariant variant = new SparkVariant (variantName , false , sparkVersion , scalaVersion , capability );
224+ SparkVariant variant = new SparkVariant (variantName , false , sparkVersion , scalaVersion , capability , classifySparkVersion );
203225 variants .add (variant );
204226 return variant ;
205227 }
@@ -437,7 +459,8 @@ private static void registerVariantScaladoc(Project project, TaskContainer tasks
437459 });
438460 }
439461
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
441464 if (sparkVariant .isDefaultVariant () == false ) {
442465 String classifier = jar .getArchiveClassifier ().get ();
443466 classifier = classifier .replace (sparkVariant .name , "" );
@@ -446,15 +469,21 @@ private static void correctScalaJarClassifiers(Jar jar, SparkVariant sparkVarian
446469 }
447470 jar .getArchiveClassifier ().set (classifier );
448471 }
472+ }
473+
474+ private static void correctScalaJarClassifiers (Jar jar , SparkVariant sparkVariant ) {
475+ if (sparkVariant .shouldClassifySparkVersion () == false ) {
476+ removeVariantNameFromClassifier (jar , sparkVariant );
477+ }
449478 String baseName = jar .getArchiveBaseName ().get ();
450479 baseName = baseName + "_" + sparkVariant .scalaMajorVersion ;
451480 jar .getArchiveBaseName ().set (baseName );
452481 }
453482
454483 private static void configureScalaJarClassifiers (Project project , final SparkVariant sparkVariant ) {
455484 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 ) );
459488 }
460489}
0 commit comments