mirror of https://github.com/sbt/sbt.git
add scala-tool configuration and dependencies when configuring via pom.xml/ivy.xml
This commit is contained in:
parent
7f5f936db4
commit
91553875a4
|
|
@ -168,6 +168,11 @@ final class IvySbt(val configuration: IvyConfiguration)
|
||||||
val md = PomModuleDescriptorParser.getInstance.parseDescriptor(settings, toURL(pc.file), pc.validate)
|
val md = PomModuleDescriptorParser.getInstance.parseDescriptor(settings, toURL(pc.file), pc.validate)
|
||||||
val dmd = IvySbt.toDefaultModuleDescriptor(md)
|
val dmd = IvySbt.toDefaultModuleDescriptor(md)
|
||||||
IvySbt.addConfigurations(dmd, Configurations.defaultInternal)
|
IvySbt.addConfigurations(dmd, Configurations.defaultInternal)
|
||||||
|
for( is <- pc.ivyScala) {
|
||||||
|
val confParser = new CustomXmlParser.CustomParser(settings, Some(Configurations.DefaultMavenConfiguration.name))
|
||||||
|
confParser.setMd(dmd)
|
||||||
|
addScalaToolDependencies(dmd, confParser, is)
|
||||||
|
}
|
||||||
(dmd, "compile")
|
(dmd, "compile")
|
||||||
}
|
}
|
||||||
/** Parses the Ivy file 'ivyFile' from the given `IvyFileConfiguration`.*/
|
/** Parses the Ivy file 'ivyFile' from the given `IvyFileConfiguration`.*/
|
||||||
|
|
@ -177,8 +182,14 @@ final class IvySbt(val configuration: IvyConfiguration)
|
||||||
parser.setValidate(ifc.validate)
|
parser.setValidate(ifc.validate)
|
||||||
parser.setSource(toURL(ifc.file))
|
parser.setSource(toURL(ifc.file))
|
||||||
parser.parse()
|
parser.parse()
|
||||||
val md = parser.getModuleDescriptor()
|
val dmd = IvySbt.toDefaultModuleDescriptor(parser.getModuleDescriptor())
|
||||||
(IvySbt.toDefaultModuleDescriptor(md), parser.getDefaultConf)
|
for( is <- ifc.ivyScala )
|
||||||
|
addScalaToolDependencies(dmd, parser, is)
|
||||||
|
(dmd, parser.getDefaultConf)
|
||||||
|
}
|
||||||
|
private def addScalaToolDependencies(dmd: DefaultModuleDescriptor, parser: CustomXmlParser.CustomParser, is: IvyScala) {
|
||||||
|
IvySbt.addConfigurations(dmd, Configurations.ScalaTool :: Nil)
|
||||||
|
IvySbt.addDependencies(dmd, ScalaArtifacts.toolDependencies(is.scalaOrganization, is.scalaFullVersion), parser)
|
||||||
}
|
}
|
||||||
private def toURL(file: File) = file.toURI.toURL
|
private def toURL(file: File) = file.toURI.toURL
|
||||||
private def configureEmpty(ec: EmptyConfiguration) =
|
private def configureEmpty(ec: EmptyConfiguration) =
|
||||||
|
|
|
||||||
|
|
@ -79,6 +79,7 @@ final case class InlineConfiguration(module: ModuleID, moduleInfo: ModuleInfo, d
|
||||||
def withConfigurations(configurations: Seq[Configuration]) = copy(configurations = configurations)
|
def withConfigurations(configurations: Seq[Configuration]) = copy(configurations = configurations)
|
||||||
def noScala = copy(ivyScala = None)
|
def noScala = copy(ivyScala = None)
|
||||||
}
|
}
|
||||||
|
@deprecated("Define a module using inline Scala (InlineConfiguration), a pom.xml (PomConfiguration), or an ivy.xml (IvyFileConfiguration).", "0.13.0")
|
||||||
final case class EmptyConfiguration(module: ModuleID, moduleInfo: ModuleInfo, ivyScala: Option[IvyScala], validate: Boolean) extends ModuleSettings
|
final case class EmptyConfiguration(module: ModuleID, moduleInfo: ModuleInfo, ivyScala: Option[IvyScala], validate: Boolean) extends ModuleSettings
|
||||||
{
|
{
|
||||||
def noScala = copy(ivyScala = None)
|
def noScala = copy(ivyScala = None)
|
||||||
|
|
@ -100,6 +101,7 @@ object InlineConfiguration
|
||||||
}
|
}
|
||||||
object ModuleSettings
|
object ModuleSettings
|
||||||
{
|
{
|
||||||
|
@deprecated("Explicitly select configuration from pom.xml, ivy.xml, or inline Scala.", "0.13.0")
|
||||||
def apply(ivyScala: Option[IvyScala], validate: Boolean, module: => ModuleID, moduleInfo: => ModuleInfo)(baseDirectory: File, log: Logger): ModuleSettings =
|
def apply(ivyScala: Option[IvyScala], validate: Boolean, module: => ModuleID, moduleInfo: => ModuleInfo)(baseDirectory: File, log: Logger): ModuleSettings =
|
||||||
{
|
{
|
||||||
log.debug("Autodetecting dependencies.")
|
log.debug("Autodetecting dependencies.")
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,13 @@ object ScalaArtifacts
|
||||||
val LibraryID = ScalaLibraryID
|
val LibraryID = ScalaLibraryID
|
||||||
val CompilerID = ScalaCompilerID
|
val CompilerID = ScalaCompilerID
|
||||||
def libraryDependency(version: String): ModuleID = ModuleID(Organization, LibraryID, version)
|
def libraryDependency(version: String): ModuleID = ModuleID(Organization, LibraryID, version)
|
||||||
|
|
||||||
|
private[sbt] def toolDependencies(org: String, version: String): Seq[ModuleID] = Seq(
|
||||||
|
scalaToolDependency(org, ScalaArtifacts.CompilerID, version),
|
||||||
|
scalaToolDependency(org, ScalaArtifacts.LibraryID, version)
|
||||||
|
)
|
||||||
|
private[this] def scalaToolDependency(org: String, id: String, version: String): ModuleID =
|
||||||
|
ModuleID(org, id, version, Some(Configurations.ScalaTool.name + "->default,optional(default)") )
|
||||||
}
|
}
|
||||||
object SbtArtifacts
|
object SbtArtifacts
|
||||||
{
|
{
|
||||||
|
|
@ -28,7 +35,7 @@ object SbtArtifacts
|
||||||
|
|
||||||
import ScalaArtifacts._
|
import ScalaArtifacts._
|
||||||
|
|
||||||
final case class IvyScala(scalaFullVersion: String, scalaBinaryVersion: String, configurations: Iterable[Configuration], checkExplicit: Boolean, filterImplicit: Boolean, overrideScalaVersion: Boolean)
|
final case class IvyScala(scalaFullVersion: String, scalaBinaryVersion: String, configurations: Iterable[Configuration], checkExplicit: Boolean, filterImplicit: Boolean, overrideScalaVersion: Boolean, scalaOrganization: String = ScalaArtifacts.Organization)
|
||||||
|
|
||||||
private object IvyScala
|
private object IvyScala
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue