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();