> >> by typing ant -p i can see > >> org.apache.easyant#build-std-java.compile.iLikeToCompileJavaClasses --> > i > >> like to compile java classes :) > >> org.apache.easyant#build-std-java.myPrefix.plop --> foo bar > > > This is what I get with Ant trunk: > > > $ ./build.sh -f ../../Temp/u.xml -p > > Buildfile: c:\Temp\u.xml > > > Main targets: > > > compile.iLikeToCompileJavaClasses i like to compile java classes :) > > myPrefix.plop foo bar > > unless I add an empty target to build-std-java in front of the > includes. If I do, I get the same prefixed names that you get.
ok :) So what is the expected behavior for prefix nesting? > > From my reading of what you expect it should be > > * <import> import doesn't contribute to the prefix of <include>d files > at all except if we explicitly give an "as" attribute for <import> > > * <include>s stack up to make a longer prefix > > Is this independent of whether the as asstribute (for either of the > tasks) has been specified? > > Is there some rationale that makes the rules easy to memorize and > document? While using nested <include>, stack up to make a longer prefix (the value of the as attribute or the imported project's name attribute, if any). <import> doesn't contribute to the prefix of <include>d files at all except if we explicitly give an "as" attribute for <import>. > > > If my assumptions are correct then > > private String getTargetPrefix(AntXMLContext context) { > String configuredValue = getCurrentTargetPrefix(); > if (configuredValue != null && configuredValue.length() == 0) { > configuredValue = null; > } > if (configuredValue != null) { > return configuredValue; > } > > String projectName = context.getCurrentProjectName(); > if ("".equals(projectName)) { > projectName = null; > } > > + if (context.isIgnoringProjectTag() && isInIncludeMode()) { > // help nested include tasks > if (projectName != null) { > setCurrentTargetPrefix(projectName); > } > + } > > return projectName; > > should help your caae. It isn's a complete fix since the prefix for > included files without "as" doesn't get set before the first target > (if any) is encountered. Seems to work, thanks