Skip to content

Commit c8aef61

Browse files
authored
Merge pull request #78 from ThoughtWorksInc/cross-subdirectory
Support subdirectory organization for crossProject
2 parents 7a0c65f + c225c42 commit c8aef61

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

subdirectory-organization/src/main/scala/com/thoughtworks/sbtBestPractice/subdirectoryOrganization/SubdirectoryOrganization.scala

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
package com.thoughtworks.sbtBestPractice.subdirectoryOrganization
22

3-
import sbt.Keys.{baseDirectory, organization}
3+
import sbt.Keys._
44
import sbt._
5+
import scala.collection.JavaConverters._
56

67
/**
78
* @author 杨博 (Yang Bo)
@@ -16,11 +17,18 @@ object SubdirectoryOrganization extends AutoPlugin {
1617
case None =>
1718
organization.value
1819
case Some(relativeBaseDirectory) =>
19-
relativeBaseDirectory.getParent match {
20-
case null =>
20+
val pathElements = relativeBaseDirectory.toPath.asScala.toSeq
21+
pathElements.lastIndexWhere(_.toString == name.value) match {
22+
case -1 =>
2123
organization.value
22-
case parent =>
23-
parent.split('/').map(Project.normalizeModuleID).mkString(organization.value, ".", "")
24+
case pathDepth =>
25+
val parentPathElements = pathElements.view(0, pathDepth)
26+
(organization.value match {
27+
case "" =>
28+
parentPathElements
29+
case oldOrganization =>
30+
oldOrganization +: parentPathElements
31+
}).mkString(".")
2432
}
2533
}
2634
}

0 commit comments

Comments
 (0)