Автоматически создающий файл манифеста с Eclipse для файлов JAR

Я использовал SchemaUpdate Hibernate для выполнения той же функции как миграции. Это на самом деле легче, чем миграции, потому что каждый раз Вы запускаете свое приложение, это исследует структуру базы данных и синхронизирует его с Вашими отображениями, таким образом, нет никакого дополнительного шага rake:db:migrate, и Ваше приложение никогда не может быть вне синхронизации с базой данных, против которой это работает. Будьте в спящем режиме отображая файлы, не более сложны, чем миграции направляющих поэтому, даже если Вы не использовали, в спящем режиме в приложении, Вы могли бы использовать в своих интересах его. Оборотная сторона - то, что это не столь гибко до отката, мигрируя вниз, выполняя операторы DML. Как указано в комментариях, это также не отбрасывает таблицы или столбцы. Я выполняю отдельный метод сделать тех вручную как часть Быть в спящем режиме процесса инициализации.

я не вижу, почему Вы не могли использовать миграции направляющих, хотя - пока Вы не возражаете устанавливать стек (Ruby, Грабли, направляющие), Вы не должны были бы касаться своего приложения.

13
задан 24 August 2011 в 22:45
поделиться

5 ответов

Eclipse предоставляет параметры для создания файла манифеста для Jar, сохранения созданного манифеста в проект или использования указанного файла для манифеста.

У меня Eclipse 3.4.2, и он находится на четвертом экране в этом процессе:

Щелкните правой кнопкой мыши Project -> Export -> Java / JAR file, Next, JAR File Specification, Next, JAR Packaging Options, Next, Спецификация манифеста JAR.

По умолчанию просто создается манифест по умолчанию для JAR, а не сохраняется созданный файл обратно в проект, поэтому, если вы откроете файл JAR, он будет иметь манифест, но он будет просто укажите в нем что-то вроде:

Manifest-Version: 1.0

.

Если вы хотите изменить существующие JAR-файлы, не перестраивая их, то, вероятно, самый простой способ - просто сделать так, как предлагает mad-j, открыть их с помощью инструмента Zip и отредактировать существующий / META-INF / MANIFEST.

7
ответ дан 1 December 2019 в 23:32
поделиться

Манифест - это простой текстовый файл, Учебник Sun подробно описывает его содержимое.

Все, что вам нужно сделать, это создать такой файл и обновить файлы JAR с помощью этой команды:

jar cfm <jar-file> <manifest-addition>
3
ответ дан 1 December 2019 в 23:32
поделиться

Файл манифеста по умолчанию создается при создании jar с использованием jar cf jar-file inputs-files .

0
ответ дан 1 December 2019 в 23:32
поделиться

С Ant вы можете использовать jar задачу . У него есть опция manifest , чтобы указать все атрибуты, которые вам нужно включить. Примерно так:

  <target name="create-my-jar">
     <jar jarfile="foo.jar" basedir="bin/classes">      
        <manifest>
        <attribute name="Class-Path" value="xxx"/>
        <attribute name="Ant-Version" value="${ant.version}"/> 
        <attribute name="Created-By" value="JDK ${java.version} (${java.vendor})"/>
        <attribute name='Specification-Title' value='xxx' />
        <attribute name='Specification-Version' value='xxx' />
        <attribute name='Specification-Vendor' value='xxx' />
        <attribute name='Implementation-Title' value='xxx' />
        <attribute name='Implementation-Version' value='xxx' />
        <attribute name='Implementation-Vendor' value='xxx' />
        <attribute name='Implementation-Vendor-Id' value='xxx' />
        <attribute name='Implementation-Vendor-URL' value='xxx' />
        <attribute name="Built-By" value="${user.name}"/>
        <attribute name='Build-Date' value='xxx'/>
        <attribute name='Build-Time' value='xxx'/>              
        </manifest>
        </jar>
   </target>
3
ответ дан 1 December 2019 в 23:32
поделиться

Файлы манифеста - это текстовые файлы. А поскольку файлы JAR на самом деле являются файлами ZIP, вы также можете добавить манифест с помощью такого инструмента, как 7-zip . Конечно, это не работает для подписанных JAR.

0
ответ дан 1 December 2019 в 23:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: