Как автоматически сгенерировать файл .jar в проекте Eclipse Java - PullRequest
45 голосов
/ 13 июля 2009

У меня есть проект Eclipse Java. Он содержит папку с именем «dist». В этой папке находится файл .jar.

Как мне настроить этот проект, чтобы убедиться, что этот файл .jar обновляется каждый раз, когда один из файлов .java в проекте перекомпилируется? Спасибо.

Ответы [ 5 ]

35 голосов
/ 30 августа 2012

Создайте файл Ant и скажите Eclipse, чтобы он создавался.Есть только два шага, и каждый из них прост с пошаговыми инструкциями ниже.


Шаг 1 Создайте файл build.xml и добавьте его в проводник пакетов:

<?xml version="1.0" ?>
<!-- Configuration of the Ant build system to generate a Jar file --> 
<project name="TestMain" default="CreateJar">
  <target name="CreateJar" description="Create Jar file">
        <jar jarfile="Test.jar" basedir="." includes="*.class" />
  </target>
</project>

Eclipse должен выглядеть примерно так, как на скриншоте ниже.Обратите внимание на значок Ant в build.xml.Build.xml in Eclipse Project

Шаг 2 Щелкните правой кнопкой мыши корневой узел в проекте.- Выберите «Свойства» - «Выбрать строителей» - «Выбрать новый» - «Выбрать сборку Ant» - на вкладке «Главная» укажите путь к файлу build.xml в папке bin .

Ant builder configuration Build step - Targets Tab

Проверьте вывод

В окне вывода Eclipse (с именем Console) после сборки должно отображаться следующее:

Buildfile: /home/<user>/src/Test/build.xml

CreateJar:
         [jar] Building jar: /home/<user>/src/Test/Test.jar
BUILD SUCCESSFUL
Total time: 152 milliseconds
17 голосов
/ 13 июля 2009

Вы можете определить Ant-компоновщик, который запускает задачу jar для jar всех файлов классов в проект (с набором "Refresh project upon completion".)

alt text

(см. Также « Настройка сборок для ваших проектов Eclipse »)

См. Статью IBM: Как и зачем создавать собственные задачи Ant

alt text

4 голосов
/ 13 июля 2009

Обычный шаблон - работа с файлами классов в проекте (проекты могут быть добавлены в пути компоновки других проектов и использованы во время выполнения во время тестирования), поэтому вам не нужны файлы jar во время разработки.

Общий подход для добавления шага автоматической сборки заключается в написании сценария ant, включите его в свой проект, и тогда вы сможете включить выполнение сценария ant в сборку проекта. Так как у муравья довольно простая задача по созданию банок, это не слишком большое усилие, если вам все время нужен файл банок. См. для стартера.

2 голосов
/ 13 июля 2009

Создание проекта утилиты J2EE (Util). Это позволяет вам создать ассоциацию с проектом J2EE (ProjectX). Когда вы изменяете свойства ProjectX в зависимости от проекта Util, он показывает Util как Util.jar. С объявленной зависимостью Eclipse соберет Util.jar, когда ему нужно будет построить проект Util. Если у вас активирована функция автоматической сборки проекта Util, файл .jar будет синхронизироваться при каждой сборке проекта. Если ваш целевой проект не является J2EE, вы все равно можете использовать это решение, но использовать фиктивный родительский проект J2EE.

Вот ссылка на страницу справки по использованию задачи ANT для создания ZIP-файла из Eclipse: http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.pde.doc.user/tasks/pde_feature_generating_ant.htm

Альтернативным решением является использование плагина Zip. Мы использовали это более 5 лет назад, но прекратили, когда WSAD включил поддержку зависимых проектов в виде файлов .jar.

0 голосов
/ 22 февраля 2018

Ответ Томаса работает, но файл jar, который он создает, не тот, который вы можете использовать для фактического запуска приложения.

Я закончил с:

<?xml version="1.0" ?>
<!-- Configuration of the Ant build system to generate a Jar file --> 
<project name="TDSz Data Mover" default="CreateJar">
  <target name="CreateJar" description="Create Jar file">
        <delete file="DataMover.jar"/>
        <jar jarfile="DataMover.jar" basedir="bin/" includes="**/*.class **/Messages*.*" " update="no">
            <zipfileset dir="D:/Java/mylib" erroronmissingarchive="true">
                <include name="*.jar" />
            </zipfileset>  
            <manifest>
                <attribute name="Main-Class" value="some.package.and.app"/>
            </manifest>             
        </jar>
  </target>
</project>

Не знаю, изменилось ли что-то в муравье с тех пор, как был дан этот ответ, но для того, чтобы все заработало, потребовалось некоторое копание Многие решения в уроках были только частичными ответами ...

Основные изменения:

  • Добавлено удаление файла jar, так как он не восстанавливался, когда я перезапустите сборку ant после изменения файла сборки.
  • Добавлен манифест для правильной установки исполняемого файла.
  • Извлечь некоторые файлы .jar в качестве библиотек
  • Извлечь файлы Message_ для поддержки NLS

Netbeans делает это намного проще - просто отметьте пару флажков.

[Отредактировано для исправления проблемы с некорректно завершенным тегом jar и извлечения файлов .jar]

...