Skip to content

Commit 3f4903a

Browse files
authored
Merge pull request #743 from rossabaker/issue-702
Handle POM-only modules by creating empty Definitions
2 parents 7bc8b44 + b46e583 commit 3f4903a

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

core/src/main/scala/com/typesafe/tools/mima/lib/MiMaLib.scala

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,21 @@ final class MiMaLib(cp: Seq[File], log: Logging = ConsoleLogging) {
1010
private val classpath = ClassPath.of(cp.flatMap(ClassPath.fromJarOrDir(_)) :+ ClassPath.base)
1111

1212
private def createPackage(dirOrJar: File): PackageInfo = {
13-
val cp = ClassPath.fromJarOrDir(dirOrJar).getOrElse(sys.error(s"not a directory or jar file: $dirOrJar"))
14-
val defs = new Definitions(ClassPath.of(List(cp, classpath)))
15-
val pkg = new DefinitionsTargetPackageInfo(defs.root)
16-
for (pkgName <- cp.packages(ClassPath.RootPackage)) {
17-
pkg.packages(pkgName) = new ConcretePackageInfo(pkg, cp, pkgName, defs)
13+
ClassPath.fromJarOrDir(dirOrJar).fold(createEmptyPackage(dirOrJar)) { cp =>
14+
val defs = new Definitions(ClassPath.of(List(cp, classpath)))
15+
val pkg = new DefinitionsTargetPackageInfo(defs.root)
16+
for (pkgName <- cp.packages(ClassPath.RootPackage)) {
17+
pkg.packages(pkgName) = new ConcretePackageInfo(pkg, cp, pkgName, defs)
18+
}
19+
log.debug(s"adding packages from $dirOrJar: ${pkg.packages.keys.mkString(", ")}")
20+
pkg
1821
}
19-
log.debug(s"adding packages from $dirOrJar: ${pkg.packages.keys.mkString(", ")}")
20-
pkg
22+
}
23+
24+
private def createEmptyPackage(missingDirOrJar: File): PackageInfo = {
25+
log.debug(s"not a directory or jar file: $missingDirOrJar. This is normal for POM-only modules. Proceeding with empty set of packages.")
26+
val defs = new Definitions(ClassPath.base)
27+
new DefinitionsTargetPackageInfo(defs.root)
2128
}
2229

2330
private def traversePackages(oldpkg: PackageInfo, newpkg: PackageInfo, excludeAnnots: List[AnnotInfo]): List[Problem] = {

0 commit comments

Comments
 (0)