2010-11-23 9 views
1

Je code actuellement le numéro de version dans le fichier de propriétés et j'espère être en mesure d'obtenir par programmation le numéro de version directement à partir du fichier de produit RCP. De cette façon, je n'ai pas besoin de spécifier le numéro de version à deux endroits. Je ne suis pas capable de trouver des articles à ce sujet. J'utilise Eclipse RCP 3.x.Eclipse RCP: Comment obtenir par programmation le numéro de version à partir du fichier du produit?

Est-ce faisable?

Merci.

+0

Ceci est au moment de la construction, non? Avez-vous envisagé de spécifier le numéro de version en dehors du fichier du produit et de remplacer un espace réservé dans le fichier du produit lors de la génération? –

+0

@Andy, puis-je savoir exactement comment je configure cela? Ce sera gentil du numéro de version peut être lu dans le fichier de propriétés et préconfiguré dans le fichier du produit. Merci. – limc

Répondre

0

Vous pouvez effectuer les opérations suivantes: Placez une balise qui sera remplacée par le numéro de build (par exemple $ DEVLEOPER $) dans le fichier plugin.xml, où que vous ayez besoin du numéro de version.

Dans votre fichier build.properties, spécifiez avec la balise customBuildCallbacks fichier qui contiendra les constructions callbacks qui fera les personnalisations:

customBuildCallbacks = buildCustomization.xml 

Le buildCustomization.xml fichier contiendra les éléments suivants:

<?xml version="1.0"?> 

<project name="product_customization" default="[email protected]"> 
    <target name="[email protected]" if="buildtag" description="Patch buildtag (if it exists) into plugin.xml"> 
     <replace file="plugin.xml" token="$DEVELOPER$" value="${buildtag}" /> 
    </target> 
</project> 

Ceci remplacera le jeton $ DEVELOPER $ dans le fichier plugin.xml par le contenu de la propriété "buildtag". Tout ceci suppose que vous construisez avec PDE, mais l'idée générale s'applique aussi à d'autres méthodes.

+0

-1 L'affiche originale indiquait qu'il voulait récupérer l'ID du fichier produit RCP, et non le numéro de version dans le fichier plugin. – ianmayo

0

Pas sûr que je comprends bien votre problème, mais vous pouvez programatically obtenir la version de votre bundle OSGi (ie "version du plugin") comme celui-ci (ce fichier de propriétés?):

import org.osgi.framework.FrameworkUtil; 
import org.osgi.framework.Version; 

Version v = FrameworkUtil.getBundle(SomeClass.class).getVersion(); 
String version = String.format("Version %d.%d.%d", v.getMajor(), v.getMinor(), v.getMicro()); 

SomeClass est un de votre classe dans le plugin.

1

Le numéro de version du fichier du produit est la version du fichier du produit. Si vous souhaitez obtenir la version du produit, vous devez définir la version en plugin.xml, alors vous pouvez essayer les variantes suivantes:

  1. String version = Display.getAppVersion().toString();
  2. String version = Platform.getProduct().getDefiningBundle().getVersion().toString();
  3. String version = Platform.getProduct().getDefiningBundle().getHeaders().get("Bundle-Version");

Ou vous pouvez ajouter propriété "version" à l'extension org.eclipse.core.runtime.products et utilisez ce code: System.out.println(Platform.getProduct().getProperty("version"));

+0

Aucun d'entre eux ne renvoie la version du produit. Pour moi, 2. et 3. retourner la version du plugin de marque. – jastram

Questions connexes