1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
package mill.scalalib.publish
import mill.scalalib.Dep
case class Artifact(group: String, id: String, version: String) {
def isSnapshot: Boolean = version.endsWith("-SNAPSHOT")
}
object Artifact {
def fromDepJava(dep: Dep) = {
assert(dep.cross.isConstant, s"Not a Java dependency: $dep")
fromDep(dep, "", "", "")
}
def fromDep(dep: Dep,
scalaFull: String,
scalaBin: String,
platformSuffix: String): Dependency = {
val name = dep.artifactName(
binaryVersion = scalaBin,
fullVersion = scalaFull,
platformSuffix = platformSuffix
)
Dependency(
Artifact(
dep.dep.module.organization.value,
name,
dep.dep.version
),
Scope.Compile,
if (dep.dep.configuration == "") None else Some(dep.dep.configuration.value),
dep.dep.exclusions.toList.map{case (a, b) => (a.value, b.value)}
)
}
}
sealed trait Scope
object Scope {
case object Compile extends Scope
case object Provided extends Scope
case object Runtime extends Scope
case object Test extends Scope
}
case class Dependency(
artifact: Artifact,
scope: Scope,
configuration: Option[String] = None,
exclusions: Seq[(String, String)] = Nil
)
case class Developer(
id: String,
name: String,
url: String,
organization: Option[String] = None,
organizationUrl: Option[String] = None
)
case class PomSettings(
description: String,
organization: String,
url: String,
licenses: Seq[License],
versionControl: VersionControl,
developers: Seq[Developer]
)
object PomSettings {
@deprecated("use VersionControl instead of SCM", "0.1.3")
def apply(description: String,
organization: String,
url: String,
licenses: Seq[License],
scm: SCM,
developers: Seq[Developer]): PomSettings = {
PomSettings(
description = description,
organization = organization,
url = url,
licenses = licenses,
versionControl = VersionControl(
browsableRepository = Some(scm.url),
connection = Some(scm.connection),
developerConnection = None,
tag = None
),
developers = developers
)
}
}
|