Apache ANT antcall Problem

Lay-C

Grünschnabel
Hallo,

Ich habe ein ANT Script, dass von Java aus aufgerufen, bzw geparsed und dann aufgerufen wird.

Wenn ich in dem Script nun versuche den AntCall Task aufzurufen bekomme ich die Fehlermeldung, dass das target nicht existiert.

Hier mein Ant-Script:

HTML:
<condition property="_isWindows_">
	<os family="windows"/>
</condition>
	
<condition property="_isSolaris_">
	<os name="Solaris"/>
</condition>

<condition property="_isAIX_">
	<os name="AIX"/>
</condition>

<condition property="_isLinux_">
	<and>
		<os family="unix"/>
		<isfalse value="${_isSolaris_}"/>
		<isfalse value="${_isAIX_}"/>
	</and>
</condition>

<target name="install">
	<antcall target="windows"/>
	<antcall target="linux"/>
</target>

<target name="windows" if="${_isWindows_}">
	<echo>Windows</echo>
</target>

<target name="linux" if="${_isLinux_}">
	<echo>Windows</echo>
</target>

Die Fehlermeldung die mir dazu ausgespuckt wird ist:

Exception in thread "Thread-4" C:\.......\install.xml:80: Following error occured while executing this line
Target `windows' does not exist in this project.
at org.apache.tools.ant.ProjectHelper.addLocationToBuildException(ProjectHelper.java:574)
at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:422)
at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:144)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:306)
at org.apache.tools.ant.Task.perform(Task.java:401)
at org.apache.tools.ant.Target.execute(Target.java:338)
at org.apache.tools.ant.Target.performTasks(Target.java:365)
at org.apache.tools.ant.Project.executeTarget(Project.java:1237)
at com.jpb.controller.Controller$3.run(Controller.java:223)


Kann mir jemand sagen, woran das liegen könnte? Den Java Source habe ich nicht selbst geschrieben, habe ihn aber vorliegen und kann daraus auch auf keine Fehler schließen.

Da bis jetzt keine Antwort kam, hier noch der betreffende Java-Code:

Code:
.....
//Creating a new Project for the current file.
Project localProject = new Project();
localProject.init();
//Parsing the file to a Project
ProjectHelper localProjectHelper = ProjectHelper.getProjectHelper();
localProject.addReference("ant.projectHelper", localProjectHelper);
localProjectHelper.parse(localProject, localFile);
......
localProject.executeTarget("install");

localFile wurde vorher auf new File("Path/to/install.xml"); gesetzt.
 
Zuletzt bearbeitet:
Habe jetzt einen workaround mit depends durchgeführt. Trotzdem würde mich interessieren, warum antcall hier nicht funktioniert.
 
Zurück