Skip to content

Commit f5f284a

Browse files
committed
Merge pull request #67 from bbarkley/master
Fix duplicate jar name when artifact classifier is used
2 parents 20180ea + e620a72 commit f5f284a

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

src/main/scala/com/typesafe/sbt/packager/archetypes/JavaApp.scala

+6-4
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ object JavaAppPackaging {
2828
// We need to figure out why sometimes the Attributed[File] is corrrectly configured
2929
// and sometimes not.
3030
scriptClasspathOrdering <+= (Keys.packageBin in Compile, Keys.projectID, Keys.artifact in Compile in Keys.packageBin) map { (jar, id, art) =>
31-
jar -> ("lib/" + makeJarName(id.organization, id.name, id.revision, art.name))
31+
jar -> ("lib/" + makeJarName(id.organization, id.name, id.revision, art.name, art.classifier))
3232
},
3333
projectDependencyArtifacts <<= findProjectDependencyArtifacts,
3434
scriptClasspathOrdering <++= (Keys.dependencyClasspath in Runtime, projectDependencyArtifacts) map universalDepMappings,
@@ -94,19 +94,21 @@ object JavaAppPackaging {
9494
}
9595

9696
// Constructs a jar name from components...(ModuleID/Artifact)
97-
def makeJarName(org: String, name: String, revision: String, artifactName: String): String =
97+
def makeJarName(org: String, name: String, revision: String, artifactName: String, artifactClassifier: Option[String]): String =
9898
(org + "." +
9999
name + "-" +
100100
Option(artifactName.replace(name, "")).filterNot(_.isEmpty).map(_ + "-").getOrElse("") +
101-
revision + ".jar")
101+
revision +
102+
artifactClassifier.filterNot(_.isEmpty).map("-" + _).getOrElse("") +
103+
".jar")
102104

103105
// Determines a nicer filename for an attributed jar file, using the
104106
// ivy metadata if available.
105107
def getJarFullFilename(dep: Attributed[File]): String = {
106108
val filename: Option[String] = for {
107109
module <- dep.metadata.get(AttributeKey[ModuleID]("module-id"))
108110
artifact <- dep.metadata.get(AttributeKey[Artifact]("artifact"))
109-
} yield makeJarName(module.organization, module.name, module.revision, artifact.name)
111+
} yield makeJarName(module.organization, module.name, module.revision, artifact.name, artifact.classifier)
110112
filename.getOrElse(dep.data.getName)
111113
}
112114

0 commit comments

Comments
 (0)