@@ -952,12 +952,14 @@ private[spark] object SparkSubmitUtils {
952952 * @return a comma-delimited list of paths for the dependencies
953953 */
954954 def resolveDependencyPaths (
955- artifacts : Array [AnyRef ],
955+ artifacts : Array [Artifact ],
956956 cacheDirectory : File ): String = {
957957 artifacts.map { artifactInfo =>
958- val artifact = artifactInfo.asInstanceOf [Artifact ].getModuleRevisionId
958+ val artifact = artifactInfo.getModuleRevisionId
959+ val classifier =
960+ Option (artifactInfo.getExtraAttribute(" classifier" )).map(" -" + _).getOrElse(" " )
959961 cacheDirectory.getAbsolutePath + File .separator +
960- s " ${artifact.getOrganisation}_ ${artifact.getName}- ${artifact.getRevision}.jar "
962+ s " ${artifact.getOrganisation}_ ${artifact.getName}${classifier} - ${artifact.getRevision}.jar "
961963 }.mkString(" ," )
962964 }
963965
@@ -967,15 +969,12 @@ private[spark] object SparkSubmitUtils {
967969 artifacts : Seq [MavenCoordinate ],
968970 ivyConfName : String ): Unit = {
969971 artifacts.foreach { mvn =>
970- val ri = ModuleRevisionId .newInstance(mvn.groupId, mvn.artifactId, mvn.version)
972+ val extraAttributes =
973+ mvn.classifier.map(c => Collections .singletonMap(" classifier" , c)).orNull
974+ val ri = ModuleRevisionId .newInstance(
975+ mvn.groupId, mvn.artifactId, mvn.version, extraAttributes)
971976 val dd = new DefaultDependencyDescriptor (ri, false , false )
972977 dd.addDependencyConfiguration(ivyConfName, ivyConfName + " (runtime)" )
973- if (mvn.classifier.isDefined) {
974- val typeExt = mvn.packaging.getOrElse(" jar" )
975- dd.addDependencyArtifact(ivyConfName, new DefaultDependencyArtifactDescriptor (
976- dd, mvn.artifactId, typeExt, typeExt, null ,
977- Collections .singletonMap(" classifier" , mvn.classifier.get)))
978- }
979978 // scalastyle:off println
980979 printStream.println(s " ${dd.getDependencyId} added as a dependency " )
981980 // scalastyle:on println
@@ -1163,9 +1162,10 @@ private[spark] object SparkSubmitUtils {
11631162 // retrieve all resolved dependencies
11641163 ivy.retrieve(rr.getModuleDescriptor.getModuleRevisionId,
11651164 packagesDirectory.getAbsolutePath + File .separator +
1166- " [organization]_[artifact]-[revision].[ext]" ,
1165+ " [organization]_[artifact](-[classifier]) -[revision].[ext]" ,
11671166 retrieveOptions.setConfs(Array (ivyConfName)))
1168- resolveDependencyPaths(rr.getArtifacts.toArray, packagesDirectory)
1167+ resolveDependencyPaths(
1168+ rr.getArtifacts.toArray.map(_.asInstanceOf [Artifact ]), packagesDirectory)
11691169 } finally {
11701170 System .setOut(sysOut)
11711171 }
0 commit comments