Skip to Content

executeProjectSet: No target platform has been set. -> How to set 'target.platform'?

Posted in

I've got a RCP application with several projects.
The problem is that 'executeProjectSet' doesn't work in my ant script.

How can I set 'target.platform'?
I'm using Ant4eclipse 1.0.0.M2 milestone.

exception message:
org.ant4eclipse.lib.core.exception.Ant4EclipseException: Exception whilst resolving the classpath entry '[EclipseClasspathEntry: path: org.eclipse.pde.core.requiredPlugins entryKind: 0 outputLocation: null exported: false]' of project 'com.generali.fipos.ice.model.editor': 'No target platform has been set. Please specify a target platform by using the <jdtclasspathcontainerargument>-subelement with 'target.platform' as key'
at org.ant4eclipse.lib.jdt.internal.tools.ClasspathEntryResolverExecutor.resolveClasspathEntries(ClasspathEntryResolverExecutor.java:252)
at org.ant4eclipse.lib.jdt.internal.tools.ClasspathEntryResolverExecutor.resolveReferencedProject(ClasspathEntryResolverExecutor.java:231)
at org.ant4eclipse.lib.jdt.internal.tools.ClasspathEntryResolverExecutor.resolve(ClasspathEntryResolverExecutor.java:168)
at org.ant4eclipse.lib.jdt.internal.tools.JdtReferencedProjectResolverImpl.resolveReferencedProjects(JdtReferencedProjectResolverImpl.java:63)
at org.ant4eclipse.lib.platform.internal.tools.ReferencedProjectsResolverServiceImpl.resolveReferencedProjects(ReferencedProjectsResolverServiceImpl.java:79)
at org.ant4eclipse.lib.platform.internal.tools.ReferencedProjectsResolverServiceImpl.resolveReferencedProjects(ReferencedProjectsResolverServiceImpl.java:99)
at org.ant4eclipse.lib.platform.tools.BuildOrderResolver.resolveBuildOrder(BuildOrderResolver.java:72)
at org.ant4eclipse.ant.platform.ExecuteProjectSetTask.doExecute(ExecuteProjectSetTask.java:167)
at org.ant4eclipse.ant.core.AbstractAnt4EclipseTask.execute(AbstractAnt4EclipseTask.java:65)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
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 org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
at org.apache.tools.ant.Main.runBuild(Main.java:758)
at org.apache.tools.ant.Main.startAnt(Main.java:217)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
Caused by: org.ant4eclipse.lib.core.exception.Ant4EclipseException: No target platform has been set. Please specify a target platform by using the <jdtclasspathcontainerargument>-subelement with 'target.platform' as key
at org.ant4eclipse.lib.pde.tools.RequiredPluginsResolver.getTargetPlatform(RequiredPluginsResolver.java:165)
at org.ant4eclipse.lib.pde.tools.RequiredPluginsResolver.resolveContainer(RequiredPluginsResolver.java:66)
at org.ant4eclipse.lib.jdt.internal.tools.classpathentry.ContainerClasspathEntryResolver.resolve(ContainerClasspathEntryResolver.java:108)
at org.ant4eclipse.lib.jdt.internal.tools.ClasspathEntryResolverExecutor.resolveClasspathEntry(ClasspathEntryResolverExecutor.java:276)
at org.ant4eclipse.lib.jdt.internal.tools.ClasspathEntryResolverExecutor.resolveClasspathEntries(ClasspathEntryResolverExecutor.java:250)
... 25 more

my ant file:
<project name="new" default="ant4eclipse_test"
xmlns:antcontrib="antlib:net.sf.antcontrib"
xmlns:ant4eclipse="antlib:org.ant4eclipse">

<taskdef uri="antlib:net.sf.antcontrib" resource="net/sf/antcontrib/antlib.xml" />
<taskdef uri="antlib:org.ant4eclipse" resource="org/ant4eclipse/antlib.xml" />

<ant4eclipse:installedJREs default="JDK_1.6_14">
<jre id="JDK_1.6_14" location="${java.home}"/>
</ant4eclipse:installedJREs>

<target name="ant4eclipse_test">
<ant4eclipse:executeProjectSet workspaceDirectory=".."
allWorkspaceProjects="true">
<ant4eclipse:forEachProject filter="(executeProjectSet.org.eclipse.jdt.core.javanature=*)">
<echo>${executeProjectSet.project.name}</echo>
</ant4eclipse:forEachProject>
</ant4eclipse:executeProjectSet>
</target>

</project>

Use the <targetPlatform> element

Hi,

you can set the target platform using the <ant4eclipse:targetPlatform> element:

http://www.ant4eclipse.org/node/44

The target platform is required if your workspace contains plug-in projets. Ant4Eclipse needs this information to resolve the build order of the contained projects...

Regards,
gerd