Hallo,
bisher benutze ich für meine eclipse product PDE als build System. Diesen stell ich grade auf buckminster um. Funktioniert auch wunderbar.
Jetzt möchte ich noch das die Plugin Version in den source code der Klasse Version eingefügt wird bevor der source kompiliert wird.
Bisher habe ich das über die customBuilcCallbacks gelöst.
Für buckminster habe ich auch schon eine buckminster.cspex im Plugin angelegt.
Habe mich hier an den Foreneintrag über die about.mappings gehalten.
Mein erstes Problem ist hierbei wie komme ich an die Aktuelle Plugin Version inkl. qualifier ran?
Das zweite Problem ist das ich nicht genau weiss wann und wie ich meine action insert.version
aufrufen muss.
Zum Testen hab ichs in die Gruppe eclipse.build.source aufgenommen. Der Token @runtime_version@ wird auch erfolgreich ersetzt nur liegt dieser nur im buckminster temp folder drin jedoch nicht im gebauten jar file.
buckminster.cspex
[XML]
<?xml version="1.0" encoding="UTF-8"?>
<cspecExtension
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:bc="http://www.eclipse.org/buckminster/Common-1.0"
xmlns="http://www.eclipse.org/buckminster/CSpec-1.0">
<artifacts>
<private name="raw.version.source">
<path path="src/runtime/util/Version.java"/>
</private>
</artifacts>
<actions>
<private name="insert.version" actor="ant">
<actorProperties>
<property key="buildFileId" value="buckminster.pdetasks"/>
<property key="targets" value="replaceToken"/>
</actorProperties>
<properties>
<property key="token" value="@runtime_version@"/>
<property key="value" value="TODO"/>
</properties>
<prerequisites>
<attribute alias="action.input" name="raw.version.source"/>
</prerequisites>
<products alias="action.output" base="${buckminster.output}/temp/">
<path path="src/runtime/util/Version.java" />
</products>
</private>
</actions>
<groups>
<private name="eclipse.build.source">
<attribute name="eclipse.build.source.old"/>
<attribute name="insert.version"/>
</private>
</groups>
<alterArtifacts>
<rename oldName="eclipse.build.source" newName="eclipse.build.source.old"/>
</alterArtifacts>
</cspecExtension>
[/XML]
Leider kann ich das nicht übder die eclipse/osgi api machen da diese klassen unabhängig von der eclipse platform sein müssen da diese nachher außerhalb von eclipse auf bluray(settop boxen laufen müssen.
Hoffe ihr könnt mir hierbei Helfen.
bisher benutze ich für meine eclipse product PDE als build System. Diesen stell ich grade auf buckminster um. Funktioniert auch wunderbar.
Jetzt möchte ich noch das die Plugin Version in den source code der Klasse Version eingefügt wird bevor der source kompiliert wird.
Bisher habe ich das über die customBuilcCallbacks gelöst.
Für buckminster habe ich auch schon eine buckminster.cspex im Plugin angelegt.
Habe mich hier an den Foreneintrag über die about.mappings gehalten.
Mein erstes Problem ist hierbei wie komme ich an die Aktuelle Plugin Version inkl. qualifier ran?
Das zweite Problem ist das ich nicht genau weiss wann und wie ich meine action insert.version
aufrufen muss.
Zum Testen hab ichs in die Gruppe eclipse.build.source aufgenommen. Der Token @runtime_version@ wird auch erfolgreich ersetzt nur liegt dieser nur im buckminster temp folder drin jedoch nicht im gebauten jar file.
buckminster.cspex
[XML]
<?xml version="1.0" encoding="UTF-8"?>
<cspecExtension
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:bc="http://www.eclipse.org/buckminster/Common-1.0"
xmlns="http://www.eclipse.org/buckminster/CSpec-1.0">
<artifacts>
<private name="raw.version.source">
<path path="src/runtime/util/Version.java"/>
</private>
</artifacts>
<actions>
<private name="insert.version" actor="ant">
<actorProperties>
<property key="buildFileId" value="buckminster.pdetasks"/>
<property key="targets" value="replaceToken"/>
</actorProperties>
<properties>
<property key="token" value="@runtime_version@"/>
<property key="value" value="TODO"/>
</properties>
<prerequisites>
<attribute alias="action.input" name="raw.version.source"/>
</prerequisites>
<products alias="action.output" base="${buckminster.output}/temp/">
<path path="src/runtime/util/Version.java" />
</products>
</private>
</actions>
<groups>
<private name="eclipse.build.source">
<attribute name="eclipse.build.source.old"/>
<attribute name="insert.version"/>
</private>
</groups>
<alterArtifacts>
<rename oldName="eclipse.build.source" newName="eclipse.build.source.old"/>
</alterArtifacts>
</cspecExtension>
[/XML]
Leider kann ich das nicht übder die eclipse/osgi api machen da diese klassen unabhängig von der eclipse platform sein müssen da diese nachher außerhalb von eclipse auf bluray(settop boxen laufen müssen.
Hoffe ihr könnt mir hierbei Helfen.
Zuletzt bearbeitet: