with netbeans manifest netbeans6.7 manifest.mf

build jar with dependencies netbeans



Netbeans manifest (8)

¿Es posible agregar entradas al archivo manifest.mf de los tarros generados por netbeans?

para construir un paquete osgi, por ejemplo.



En caso de que estés usando maven (nbm-maven-plugin), mira esto

NBM Maven plugin



Puede editar el nbproject/build-impl.xml agregando las propiedades necesarias como esta:

.... <target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" if="do.archive+main.class.available" name="-do-jar-set-mainclass"> <manifest encoding="UTF-8" file="${tmp.manifest.file}" mode="update"> <attribute name="Main-Class" value="${main.class}"/> <attribute name="Property1" value="foo"/> <attribute name="Property2" value="bar"/> </manifest> </target> ....

Esto resultará en un MANIFEST.MF en un archivo jar como este:

Manifest-Version: 1.0 ... Property1: foo Property2: bar

Probado en Netbeans 8.1.


Tenga en cuenta que puede crear un manifiesto sobre la marcha a través de una tarea ant y establecer propiedades dinámicamente.

Primero, debe actualizar el archivo "project.properties" de Netbeans que se encuentra en el directorio "nbproject". Agregue la siguiente línea al archivo:

manifest.file=manifest.mf

A continuación, cree una tarea ant para crear / actualizar el manifiesto utilizando el archivo "build.xml". En este ejemplo, estableceremos el número de versión y la fecha del archivo 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>

Esto creará un archivo de manifiesto en el directorio de su proyecto netbeans y lo guardará en su archivo jar. Si desea eliminar el archivo de manifiesto generado automáticamente de su directorio de proyecto netbeans, simplemente cree otra tarea ant (post jar, por supuesto):

<target name="-post-jar"> <delete file="MANIFEST.MF"/> </target>


Tengo un proyecto de Java Class Library con un archivo de manifiesto personalizado, perfecto para un paquete OSGI. Para que esto funcione, primero edite project.properties y establezca:

manifest.file=manifest.mf manifest.available=true

Cree su propio archivo manifest.mf personalizado en el directorio del proyecto.

(En este punto, si intenta realizar una limpieza / compilación, aún no obtendrá su archivo de manifiesto personalizado: NetBeans proporcionará el suyo. Esto se debe a que el objetivo Ant de build-impl.xml "-do-jar-with-library-without -manifest "se está llamando inmediatamente después de" -do-jar-with-manifest ", sobrescribiendo su archivo JAR de manifiesto personalizado con un JAR de manifiesto de NetBeans predeterminado.)

Agregue un destino personalizado a su archivo build.xml de la siguiente manera:

<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>

Probado en NetBeans 6.7.1


Ver este articulo

Aquí se describe cómo

  • crear objetivos de hormigas propios
  • agregar entradas manuales a manifest.mf para el JAR de salida
  • Ejecutar objetivos hormiga personalizados desde Netbeans

en el mismo directorio que el build.xml puede poner su archivo manifest.mf

Estoy usando Netbeans 6.7.1 Resulta que el build-imp.xml (el script de compilación real que usa Netbeans)

  • no tiene un objetivo que se ejecuta si ''con manifiesto, sin clase principal''
  • pero tiene uno como ''con manifiesto, con clase principal''

Así que ... asegúrate de tener las propiedades del proyecto, ejecutar, clase principal llenas de -cualquier cosa-

Creo que esa es una característica indocumentada :(

este es mi contenido manifiesto

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: ( ..... )