diff --git a/src/main/scala/sbt/internal/ProjectMatrix.scala b/src/main/scala/sbt/internal/ProjectMatrix.scala index 539058599..9c920d69d 100644 --- a/src/main/scala/sbt/internal/ProjectMatrix.scala +++ b/src/main/scala/sbt/internal/ProjectMatrix.scala @@ -334,7 +334,8 @@ object ProjectMatrix { private def makeSources(dirSuffix: String, svDirSuffix: String): Setting[_] = { unmanagedSourceDirectories ++= Seq( scalaSource.value.getParentFile / s"scala${dirSuffix}", - scalaSource.value.getParentFile / s"scala$svDirSuffix" + scalaSource.value.getParentFile / s"scala$svDirSuffix", + javaSource.value.getParentFile / s"java${dirSuffix}" ) } diff --git a/src/sbt-test/projectMatrix/java/app/src/main/java-config1.2-jvm/com/config/MyClass.java b/src/sbt-test/projectMatrix/java/app/src/main/java-config1.2-jvm/com/config/MyClass.java new file mode 100644 index 000000000..b714ca27b --- /dev/null +++ b/src/sbt-test/projectMatrix/java/app/src/main/java-config1.2-jvm/com/config/MyClass.java @@ -0,0 +1,9 @@ +package com.config; + +public class MyClass { + + public static String configValue() { + return "1.2"; + } + +} diff --git a/src/sbt-test/projectMatrix/java/app/src/main/java-config1.3-jvm/com/config/MyClass.java b/src/sbt-test/projectMatrix/java/app/src/main/java-config1.3-jvm/com/config/MyClass.java new file mode 100644 index 000000000..2c4800d95 --- /dev/null +++ b/src/sbt-test/projectMatrix/java/app/src/main/java-config1.3-jvm/com/config/MyClass.java @@ -0,0 +1,9 @@ +package com.config; + +public class MyClass { + + public static String configValue() { + return "1.3"; + } + +} diff --git a/src/sbt-test/projectMatrix/java/app/src/main/scala/com/config/Main.scala b/src/sbt-test/projectMatrix/java/app/src/main/scala/com/config/Main.scala new file mode 100644 index 000000000..864de72cd --- /dev/null +++ b/src/sbt-test/projectMatrix/java/app/src/main/scala/com/config/Main.scala @@ -0,0 +1,5 @@ +package com.config + +object Main extends App { + println(s"Version: ${MyClass.configValue()}") +} diff --git a/src/sbt-test/projectMatrix/java/build.sbt b/src/sbt-test/projectMatrix/java/build.sbt new file mode 100644 index 000000000..d4532995a --- /dev/null +++ b/src/sbt-test/projectMatrix/java/build.sbt @@ -0,0 +1,41 @@ +ThisBuild / organization := "com.example" +ThisBuild / version := "0.1.0-SNAPSHOT" +ThisBuild / publishMavenStyle := true + +ThisBuild / ivyPaths := { + val base = (ThisBuild / baseDirectory).value + IvyPaths(base, Some(base / "ivy-cache")) +} +publish / skip := true + +lazy val config12 = ConfigAxis("Config1_2", "-config1.2") +lazy val config13 = ConfigAxis("Config1_3", "-config1.3") + +lazy val scala212 = "2.12.10" + +lazy val app = (projectMatrix in file("app")) + .settings( + name := "app", + ivyPaths := (ThisBuild / ivyPaths).value + ) + .customRow( + scalaVersions = Seq(scala212), + axisValues = Seq(config12, VirtualAxis.jvm), + _.settings( + moduleName := name.value + "_config1.2", + libraryDependencies += "com.typesafe" % "config" % "1.2.1" + ) + ) + .customRow( + scalaVersions = Seq(scala212), + axisValues = Seq(config13, VirtualAxis.jvm), + _.settings( + moduleName := name.value + "_config1.3", + libraryDependencies += "com.typesafe" % "config" % "1.3.3" + ) + ) + +lazy val appConfig12_212 = app.finder(config13, VirtualAxis.jvm)(scala212) + .settings( + publishMavenStyle := true + ) diff --git a/src/sbt-test/projectMatrix/java/project/ConfigAxis.scala b/src/sbt-test/projectMatrix/java/project/ConfigAxis.scala new file mode 100644 index 000000000..b1124c60e --- /dev/null +++ b/src/sbt-test/projectMatrix/java/project/ConfigAxis.scala @@ -0,0 +1,5 @@ +import sbt._ + +case class ConfigAxis(idSuffix: String, directorySuffix: String) extends VirtualAxis.WeakAxis { + +} diff --git a/src/sbt-test/projectMatrix/java/project/plugins.sbt b/src/sbt-test/projectMatrix/java/project/plugins.sbt new file mode 100644 index 000000000..4e80bbafc --- /dev/null +++ b/src/sbt-test/projectMatrix/java/project/plugins.sbt @@ -0,0 +1,5 @@ +sys.props.get("plugin.version") match { + case Some(x) => addSbtPlugin("com.eed3si9n" % "sbt-projectmatrix" % x) + case _ => sys.error("""|The system property 'plugin.version' is not defined. + |Specify this property using the scriptedLaunchOpts -D.""".stripMargin) +} diff --git a/src/sbt-test/projectMatrix/java/test b/src/sbt-test/projectMatrix/java/test new file mode 100644 index 000000000..964c0eac1 --- /dev/null +++ b/src/sbt-test/projectMatrix/java/test @@ -0,0 +1,4 @@ +> publishLocal + +$ exists ivy-cache/local/com.example/app_config1.2_2.12/0.1.0-SNAPSHOT/poms/app_config1.2_2.12.pom +$ exists ivy-cache/local/com.example/app_config1.3_2.12/0.1.0-SNAPSHOT/poms/app_config1.3_2.12.pom