One more plea for help ;-)
I tried to implement a workaround now, to force a rewriting of the
.cproject after my modifications. This code compiles fine:
monitor.setTaskName("saving changes");
for (IProject project : changedProjects) {
ICProjectDescription des =
CCorePlugin.getDefault().getProjectDescription(project, true);
System.out.println("SAVE " + project.getName());
if (des != null) {
System.out.println(" ++" + project.getName());
CCorePlugin.getDefault().setProjectDescription(project,
des, true, monitor);
}
}
monitor.done();
When running in the PDE runtime workbench, all is fine (well, it
still does not save, but the code is running fine).
But when I export the plugin and install it into my regular Eclipse
installation, I get this exception:
java.lang.NoClassDefFoundError:
org/eclipse/cdt/core/CCorePlugin
at
com.siemens.cropet.maketargets.Maketargetbuilder.updateMakeTargets(Maketargetbuilder.java:254)
at
com.siemens.cropet.maketargets.Maketargetbuilder.access$3(Maketargetbuilder.java:232)
at
com.siemens.cropet.maketargets.Maketargetbuilder$2.run(Maketargetbuilder.java:70)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
I guess this is some very basic handling error on my side, but I
encounter that for the first time. Any idea what's missing?
This is my plugin.xml and manifest:
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>
<plugin>
<extension
point="org.eclipse.ui.startup">
<startup
class="com.siemens.cropet.maketargets.Maketargetbuilder">
</startup>
</extension>
<extension
point="org.eclipse.ui.preferencePages">
<page
class="com.siemens.cropet.maketargets.preferences.MaketargetsPreferencePage"
id="com.siemens.cropet.maketargets.preferences.MaketargetsPreferencePage"
category="org.eclipse.cdt.make.ui.preferences.MakePreferencePage"
name="Maketarget creation">
</page>
</extension>
<extension
point="org.eclipse.core.runtime.preferences">
<initializer
class="com.siemens.cropet.maketargets.preferences.PreferenceInitializer">
</initializer>
</extension>
<extension
point="org.eclipse.ui.popupMenus">
<objectContribution
adaptable="true"
id="com.siemens.cropet.maketargets.popup"
objectClass="org.eclipse.core.resources.IResource">
<action
class="com.siemens.cropet.maketargets.popup.actions.CreateMaketargets"
id="com.siemens.cropet.maketargets.autocreate"
label="Auto-create for project..."
menubarPath="org.eclipse.cdt.make.ui.menu/gm1">
</action>
<visibility>
<or>
<and>
<objectClass
name="org.eclipse.core.resources.IFolder">
</objectClass>
<not>
<or>
<objectState
name="name"
value="src">
</objectState>
<objectState
name="name"
value="h">
</objectState>
</or>
</not>
</and>
<and>
<objectClass
name="org.eclipse.core.resources.IFile">
</objectClass>
<objectState
name="name"
value="Imakefile">
</objectState>
</and>
</or>
</visibility>
</objectContribution>
</extension>
</plugin>
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: CroPET MakeTargets Plug-in
Bundle-SymbolicName: com.siemens.cropet.maketargets;singleton:=true
Bundle-Version: 1.3.0
Bundle-Activator: com.siemens.cropet.maketargets.Activator
Bundle-Vendor: Siemens AG, I DT MC
Export-Package: com.siemens.cropet.maketargets,
com.siemens.cropet.maketargets.popup.actions,
com.siemens.cropet.maketargets.preferences
Require-Bundle: org.eclipse.cdt.make.core,
org.eclipse.core.runtime.compatibility,
org.eclipse.core.resources,
org.eclipse.ui,
org.eclipse.core.runtime,
org.eclipse.cdt.make.ui;bundle-version="5.0.0",
org.eclipse.cdt.core;bundle-version="5.0.0"
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Plugin-Class: com.siemens.cropet.maketargets.Activator
Bundle-ActivationPolicy: lazy
Thanks for any help.
-Achim
|