From 9b79c03c8acbd5b4cd2940b8f44b3f4d4ce13bba Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Mon, 24 Jul 2000 14:54:49 +0000 Subject: [PATCH] Didn't handle relative paths in project's basedir attribute correctly. Reported by: , Jesse Glick git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@267826 13f79535-47bb-0310-9956-ffa450edef68 --- src/main/org/apache/tools/ant/ProjectHelper.java | 2 +- src/main/org/apache/tools/ant/taskdefs/Ant.java | 16 ++++++++++------ .../apache/tools/ant/taskdefs/CallTarget.java | 2 +- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/main/org/apache/tools/ant/ProjectHelper.java b/src/main/org/apache/tools/ant/ProjectHelper.java index 9730af591..4b57755f8 100644 --- a/src/main/org/apache/tools/ant/ProjectHelper.java +++ b/src/main/org/apache/tools/ant/ProjectHelper.java @@ -233,7 +233,7 @@ public class ProjectHelper { if (project.getProperty("basedir") != null) { project.setBasedir(project.getProperty("basedir")); } else { - project.setBasedir(baseDir); + project.setBasedir((new File(buildFile.getParent(), baseDir)).getAbsolutePath()); } } diff --git a/src/main/org/apache/tools/ant/taskdefs/Ant.java b/src/main/org/apache/tools/ant/taskdefs/Ant.java index 7bb85b075..4ab44064e 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Ant.java +++ b/src/main/org/apache/tools/ant/taskdefs/Ant.java @@ -79,7 +79,7 @@ import java.util.*; */ public class Ant extends Task { - private String dir = null; + private File dir = null; private String antFile = null; private String target = null; private String output = null; @@ -154,12 +154,13 @@ public class Ant extends Task { reinit(); } - if( dir==null) dir="."; + if(dir == null) + dir = project.getBaseDir(); initializeProject(); - p1.setBasedir(dir); - p1.setUserProperty("basedir" , dir); + p1.setBaseDir(dir); + p1.setUserProperty("basedir" , dir.getAbsolutePath()); // Override with local-defined properties Enumeration e = properties.elements(); @@ -168,7 +169,10 @@ public class Ant extends Task { p.init(); } - if (antFile == null) antFile = dir + "/build.xml"; + if (antFile == null) + antFile = "build.xml"; + + antFile = (new File(dir, antFile)).getAbsolutePath(); p1.setUserProperty( "ant.file" , antFile ); ProjectHelper.configureProject(p1, new File(antFile)); @@ -184,7 +188,7 @@ public class Ant extends Task { } } - public void setDir(String d) { + public void setDir(File d) { this.dir = d; } diff --git a/src/main/org/apache/tools/ant/taskdefs/CallTarget.java b/src/main/org/apache/tools/ant/taskdefs/CallTarget.java index 0460ec340..ccd3eb975 100644 --- a/src/main/org/apache/tools/ant/taskdefs/CallTarget.java +++ b/src/main/org/apache/tools/ant/taskdefs/CallTarget.java @@ -97,7 +97,7 @@ public class CallTarget extends Task { location); } - delegate.setDir("."); + delegate.setDir(project.getBaseDir()); delegate.setAntfile(project.getProperty("ant.file")); delegate.setTarget(subTarget); delegate.execute();