@@ -59,13 +59,14 @@ object Build {
59
59
def outputOpt : Some [os.Path ] = Some (output)
60
60
def dependencyClassPath : Seq [os.Path ] = sources.resourceDirs ++ artifacts.classPath
61
61
def fullClassPath : Seq [os.Path ] = Seq (output) ++ dependencyClassPath
62
+ private lazy val mainClassesFoundInProject : Seq [String ] = MainClass .find(output).sorted
63
+ private lazy val mainClassesFoundOnExtraClasspath : Seq [String ] =
64
+ options.classPathOptions.extraClassPath.flatMap(MainClass .find).sorted
65
+ private lazy val mainClassesFoundInUserExtraDependencies : Seq [String ] =
66
+ artifacts.jarsForUserExtraDependencies.flatMap(MainClass .findInDependency).sorted
62
67
def foundMainClasses (): Seq [String ] = {
63
- val found =
64
- MainClass .find(output).sorted ++
65
- options.classPathOptions.extraClassPath.flatMap(MainClass .find).sorted
66
- if (inputs.isEmpty && found.isEmpty)
67
- artifacts.jarsForUserExtraDependencies.flatMap(MainClass .findInDependency).sorted
68
- else found
68
+ val found = mainClassesFoundInProject ++ mainClassesFoundOnExtraClasspath
69
+ if inputs.isEmpty && found.isEmpty then mainClassesFoundInUserExtraDependencies else found
69
70
}
70
71
def retainedMainClass (
71
72
mainClasses : Seq [String ],
@@ -121,8 +122,11 @@ object Build {
121
122
}
122
123
123
124
val filteredMainClasses =
124
- mainClasses.filter(! scriptInferredMainClasses.contains(_))
125
- if (filteredMainClasses.length == 1 ) {
125
+ mainClasses
126
+ .filterNot(scriptInferredMainClasses.contains(_))
127
+ .filterNot(mainClassesFoundOnExtraClasspath.contains(_))
128
+ .filterNot(mainClassesFoundInUserExtraDependencies.contains(_))
129
+ if filteredMainClasses.length == 1 then {
126
130
val pickedMainClass = filteredMainClasses.head
127
131
if (scriptInferredMainClasses.nonEmpty) {
128
132
val firstScript = scriptInferredMainClasses.head
@@ -139,8 +143,7 @@ object Build {
139
143
}
140
144
Right (pickedMainClass)
141
145
}
142
- else
143
- Left (mainClasses)
146
+ else Left (mainClasses)
144
147
}
145
148
def retainedMainClassOpt (
146
149
mainClasses : Seq [String ],
0 commit comments