Netbeans manifeste
Est-il possible d'ajouter des entrées pour le manifeste.fichier mf des bocaux générés par netbeans?
pour construire un paquet osgi par exemple.
7 réponses
notez que vous pouvez créer un manifeste à la volée via une tâche ant et définir les propriétés de manière dynamique.
tout d'abord, vous devez mettre à jour votre projet Netbeans".propriétés "fichier trouvé dans le répertoire" nbproject". Ajoutez la ligne suivante dans le fichier:
manifest.file=manifest.mf
Ensuite, créez une tâche ant pour créer/mettre à jour le manifeste "build.xml fichier. Dans cet exemple, nous allons définir le numéro de version et la date du fichier jar.
<target name="-pre-init">
<property name="project.name" value="My Library" />
<property name="version.num" value="1.4.1" />
<tstamp>
<format property="NOW" pattern="yyyy-MM-dd HH:mm:ss z" />
</tstamp>
<!--
<exec outputproperty="svna.version" executable="svnversion">
<arg value="-c" />
<redirector>
<outputfilterchain>
<tokenfilter>
<replaceregex pattern="^[0-9]*:?" replace="" flags="g"/>
<replaceregex pattern="M" replace="" flags="g"/>
</tokenfilter>
</outputfilterchain>
</redirector>
</exec>
-->
<manifest file="MANIFEST.MF">
<attribute name="Bundle-Name" value="${project.name}" />
<attribute name="Bundle-Version" value="${version.num}" />
<attribute name="Bundle-Date" value="${NOW}" />
<!--<attribute name="Bundle-Revision" value="${svna.version}" />-->
<attribute name="Implementation-Title" value="${project.name}" />
<attribute name="Implementation-Version" value="${version.num}" />
<attribute name="Implementation-URL" value="http://www.example.com" />
</manifest>
</target>
ceci créera un manifeste enregistrez dans votre répertoire netbeans project et insérez-le dans votre fichier jar. Si vous voulez supprimer le fichier de manifeste autogénéré de votre répertoire de projet netbeans, créez simplement une autre tâche ant (post jar bien sûr):
<target name="-post-jar">
<delete file="MANIFEST.MF"/>
</target>
j'ai un projet de bibliothèque Java Class avec un fichier manifeste personnalisé - parfait pour un paquet OSGI. Pour obtenir ce travail de la première édition d'un projet.propriétés et définir:
manifest.file=manifest.mf
manifest.available=true
Créer votre propre manifeste.mf fichier dans le répertoire du projet.
(à ce point si vous essayez un clean / build vous n'obtiendrez toujours pas votre fichier de manifeste personnalisé - NetBeans fournira son propre. C'est parce que l'accumulation impl.xml target Ant "-ne-jar-avec-les bibliothèques-sans-manifeste" est appelé immédiatement après"-do-jar-with-manifest", écrasez votre fichier JAR de manifeste personnalisé avec un JAR de manifeste NetBeans par défaut.)
Ajouter une cible personnalisée de votre construction.fichier xml comme suit:
<target name="-do-jar-with-libraries-without-manifest">
<!-- Inserted to prevent target from running so we can have a custom
manifest file with a class library project type. -->
</target>
Testé dans NetBeans 6.7.1
dans le même dir que le construire.XML vous pouvez mettre votre manifeste.fichier mf
j'utilise Netbeans 6.7.1 Il s'avère que le build-imp.xml (le script de construction utilisé par Netbeans)
- ne pas avoir une cible qui s'exécute si "avec manifeste, sans classe'
- mais il en a une comme 'avec manifeste, avec les principaux de la classe'
.. assurez-vous que vous avez le projet,-les propriétés,l'exécution,la principale Classe rempli avec -rien-
je pense que c'est une fonctionnalité non documentée :(
ceci est mon contenu manifeste:
Manifest-Version: 1.0
X-COMMENT: Main-Class will be added automatically by build
Bundle-ManifestVersion: 2
Bundle-Name: jinstall
Bundle-SymbolicName: jinstall
Import-Package: ( .... )
Export-Package: ( .... )
Bundle-Activator: ( ..... )
pourquoi ne pas utiliser le projet a maven, qui a bien fonctionné pour moi? E. g. apache felix
Voir cet exemple de balançoire connectable que j'ai créé dans netbeans.
Voir cet article.
Ici, il est décrit comment
- créer propre ant cibles
- ajouter des entrées manuelles au manifeste.mf pour la sortie JAR
- exécuter personnalisé ant des cibles à partir de Netbeans