В NetBeans манифест

можно ли добавить записи в манифесте.mf файл банок, сгенерированных netbeans?

для создания пакета osgi, например.

7 ответов


обратите внимание, что вы можете создать манифест на лету с помощью задачи ant и динамически устанавливать свойства.

во-первых, вы должны обновить проект Netbeans.файл "свойства" находится в каталоге "nbproject". Добавьте в файл следующую строку:

manifest.file=manifest.mf

затем создайте задачу ant для создания / обновления манифеста с помощью " build.XML-файл. В этом примере мы установим номер версии и дата файла 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>

Это создаст манифест файл в каталоге проекта netbeans и вставьте его в файл jar. Если вы хотите удалить файл автогенерированного манифеста из каталога проекта netbeans, просто создайте другую задачу ant (post jar, конечно):

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

интересная информация может быть здесь:

http://wiki.netbeans.org/FaqNoMainClass


у меня есть проект библиотеки классов Java с пользовательским файлом манифеста - идеально подходит для пакета OSGI. Это первый проект изменить.свойства и набор:

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

создайте свой собственный манифест.mf-файл в каталоге проекта.

(на данный момент, если вы попытаетесь очистить/построить, вы все равно не получите свой пользовательский файл манифеста - NetBeans предоставит свой собственный. Это потому, что сборка-impl.цель муравья xml"-do-jar-with-libraries-without-manifest " вызывается сразу после "- do-jar-with-manifest" перезаписать пользовательский файл jar манифеста с помощью jar манифеста NetBeans по умолчанию.)

добавьте пользовательскую цель в свою сборку.xml-файл выглядит следующим образом:

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

протестировано в NetBeans 6.7.1


в том же каталоге, что и сборка.XML вы можете поместить свой манифест.файл mf

Я использую Netbeans 6.7.1 Оказывается, что сборка-imp.xml (фактический скрипт сборки, используемый Netbeans)

  • не имеет цели, которая выполняется, если "с манифестом, без основного класса"
  • но у него есть один, как с манифестом, с основного класса'

Так.. убедитесь, что у вас есть project-properties, run, main-Class, заполненный-anything -

i подумайте, что это какая-то недокументированная функция : (

Это мое содержание манифеста:

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

Если вы используете maven (NBM-maven-plugin), посмотрите на это

плагин NBM Maven


Почему бы не использовать проект A maven, который хорошо работал для меня? Е. Г. apache felix

посмотреть этот подключаемый пример качания который я создал в NetBeans.


посмотреть в этой статье.

здесь описано, как

  • создать собственные цели муравьев
  • добавить вручную записи в манифесте.mf для выходной банки
  • запуск пользовательских целей ant из Netbeans