From cf6181690c2c13cc6acc08ed97f801e0bbf1d002 Mon Sep 17 00:00:00 2001 From: dmharrah Date: Wed, 9 Sep 2009 03:10:31 +0000 Subject: [PATCH] Fix issue 42 (projects should search parents for ivysettings.xml) git-svn-id: https://simple-build-tool.googlecode.com/svn/trunk@988 d89573ee-9141-11dd-94d4-bdf5e562f29c --- src/main/scala/sbt/ManageDependencies.scala | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/main/scala/sbt/ManageDependencies.scala b/src/main/scala/sbt/ManageDependencies.scala index 76b6d6264..937818f45 100644 --- a/src/main/scala/sbt/ManageDependencies.scala +++ b/src/main/scala/sbt/ManageDependencies.scala @@ -49,7 +49,7 @@ object ManageDependencies val DefaultMavenFilename = "pom.xml" private def defaultIvyFile(project: Path) = project / DefaultIvyFilename - private def defaultIvyConfiguration(project: Path) = project / DefaultIvyConfigFilename + private def defaultIvyConfiguration(project: File) = new File(project, DefaultIvyConfigFilename) private def defaultPOM(project: Path) = project / DefaultMavenFilename /** Configures Ivy using the provided configuration 'config' and calls 'doWithIvy'. This method takes care of setting up and cleaning up Ivy.*/ @@ -129,10 +129,19 @@ object ManageDependencies def autodetectConfiguration() { log.debug("Autodetecting configuration.") - val defaultIvyConfigFile = defaultIvyConfiguration(paths.projectDirectory).asFile - if(defaultIvyConfigFile.canRead) - settings.load(defaultIvyConfigFile) - else + def autodetect(dir: File): Boolean = + (dir != null) && + { + val defaultIvyConfigFile = defaultIvyConfiguration(dir) + if(defaultIvyConfigFile.canRead) + { + settings.load(defaultIvyConfigFile) + true + } + else + autodetect(dir.getParentFile) + } + if(!autodetect(paths.projectDirectory.asFile)) configureDefaults(defaultResolvers) } /** Called to determine dependencies when the dependency manager is SbtManager and no inline dependencies (Scala or XML) are defined