Bonjour,
Je suis actuellement en train de developper un plug-in Eclipse pour appeller des ciblesant via un editeur spécialisé, concernant le plug-in Eclipse, je m'en sors.
Par contre, pour appeller les cibles Ant, j'ai un petit soucis, voici ma classe qui me permet d'éxécuter les cibles ANT :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
package tools.ant;
 
import java.io.File;
 
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.BuildListener;
import org.apache.tools.ant.DefaultLogger;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.ProjectHelper;
import org.eclipse.ui.console.ConsolePlugin;
import org.eclipse.ui.console.IConsole;
import org.eclipse.ui.console.MessageConsole;
import org.eclipse.ui.console.MessageConsoleStream;
 
public class ManageAnt {
	private String fileName;
	private File buildFile;
	private Project project;
 
	public ManageAnt(String fileName) {
		this.fileName = fileName;
	}
 
	public boolean init() {
		boolean retour = false;
		buildFile = new File(fileName);
		if (buildFile.exists()) {
			try {
				project = new Project();
				BuildListener listener = new DefaultLogger();
				project.addBuildListener(listener);
				org.apache.tools.ant.DefaultLogger log = new org.apache.tools.ant.DefaultLogger();
 
				// Récupération de la console
				MessageConsole console = new MessageConsole("My Console", null);
				console.activate();
				ConsolePlugin.getDefault().getConsoleManager()
						.addConsoles(new IConsole[] { console });
				MessageConsoleStream stream = console.newMessageStream();
 
				// Ajout des sorties de Ant à la console standart
				log.setOutputPrintStream(System.err);
				log.setOutputPrintStream(System.out);
				log.setMessageOutputLevel(Project.MSG_INFO);
				project.addBuildListener(log);
 
				// Récupération des sorties des la console standart pour la
				// console du plugin
				StdErrLog test = new StdErrLog(stream);
				test.catchStream();
				test.createLoggingProxy(System.err);
 
				Throwable exception = null;
				try {
					project.fireBuildStarted();
					project.init();
					ProjectHelper.configureProject(project, buildFile);
				} catch (BuildException e) {
					exception = e;
					e.printStackTrace();
				} finally {
					if (exception != null) {
						project.fireBuildFinished(exception);
						return false;
					}
				}
			} catch (Exception e) {
				e.printStackTrace();
				return false;
			}
			return true;
		}
 
		return retour;
	}
 
	public void simpleExecute(String name) {
 
		try {
			project.executeTarget(name);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
 
}
Avec la méthode "simpleExecute(String name)", j'arrive à éxécuter mes cibles ant sans problème.
Sauf dans un seul cas, si la cible Ant est une cible appellant d'autre cible ant, comme dans cette exemple là :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
	<target name="stop" description="Enchainement des etapes d'arret: a invoquer avec utilisateur fi?1was">
			<echo message="Initialisation de la procedure d'arret"/>		
			<antcall target="stop.injectorsGEDCOM"/>
Dans, ce cas là, j'ai l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
C:\Users\SRN90881\runtime-EclipseApplication\test\common-40ctrl-platform-build.xml:53: The following error occurred while executing this line:
java.io.FileNotFoundException: C:\Users\SRN90881\runtime-EclipseApplication\test\build.xml (Le fichier spécifié est introuvable)
	at org.apache.tools.ant.ProjectHelper.addLocationToBuildException(ProjectHelper.java:508)
	at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:369)
	at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
	at org.apache.tools.ant.Task.perform(Task.java:348)
	at org.apache.tools.ant.Target.execute(Target.java:357)
	at org.apache.tools.ant.Target.performTasks(Target.java:385)
	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
	at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
	at tools.ant.ManageAnt.simpleExecute(ManageAnt.java:80)
	at base.editors.SimpleContentHandler$1.widgetSelected(SimpleContentHandler.java:85)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1408)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1384)
Caused by: java.io.FileNotFoundException: C:\Users\SRN90881\runtime-EclipseApplication\test\build.xml (Le fichier spécifié est introuvable)
	at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:230)
	at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:140)
	at org.apache.tools.ant.ProjectHelper.configureProject(ProjectHelper.java:93)
	at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:367)
	... 40 more
Caused by: java.io.FileNotFoundException: C:\Users\SRN90881\runtime-EclipseApplication\test\build.xml (Le fichier spécifié est introuvable)
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(Unknown Source)
	at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:190)
	... 43 more
--- Nested Exception ---
java.io.FileNotFoundException: C:\Users\SRN90881\runtime-EclipseApplication\test\build.xml (Le fichier spécifié est introuvable)
	at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:230)
	at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:140)
	at org.apache.tools.ant.ProjectHelper.configureProject(ProjectHelper.java:93)
	at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:367)
	at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
	at org.apache.tools.ant.Task.perform(Task.java:348)
	at org.apache.tools.ant.Target.execute(Target.java:357)
	at org.apache.tools.ant.Target.performTasks(Target.java:385)
	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
	at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
	at tools.ant.ManageAnt.simpleExecute(ManageAnt.java:80)
	at base.editors.SimpleContentHandler$1.widgetSelected(SimpleContentHandler.java:85)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1408)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1384)
Caused by: java.io.FileNotFoundException: C:\Users\SRN90881\runtime-EclipseApplication\test\build.xml (Le fichier spécifié est introuvable)
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(Unknown Source)
	at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:190)
	... 43 more
--- Nested Exception ---
java.io.FileNotFoundException: C:\Users\SRN90881\runtime-EclipseApplication\test\build.xml (Le fichier spécifié est introuvable)
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(Unknown Source)
	at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:190)
	at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:140)
	at org.apache.tools.ant.ProjectHelper.configureProject(ProjectHelper.java:93)
	at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:367)
	at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
	at org.apache.tools.ant.Task.perform(Task.java:348)
	at org.apache.tools.ant.Target.execute(Target.java:357)
	at org.apache.tools.ant.Target.performTasks(Target.java:385)
	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
	at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
	at tools.ant.ManageAnt.simpleExecute(ManageAnt.java:80)
	at base.editors.SimpleContentHandler$1.widgetSelected(SimpleContentHandler.java:85)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1408)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1384)
Donc, voilà je suis bien embêté car j'utilise ces cibles pour simplifier mon script ant et faire des appels consécutifs de cibles ant.

Si des personnes ont déjà eu ce problème.

PS : Des personnes ont déjà eu ce problème, mais pas de réponse ... http://www.mail-archive.com/user@ant.../msg07938.html