it-swarm.com.ru

Как автоматически сгенерировать файл .jar в проекте Eclipse Java

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

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

Благодарю.

44
Dr. Faust

Создайте файл 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>

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

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

Ant builder configurationBuild 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
35
Thomas Bratt

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

alt text

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

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

alt text

17
VonC

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

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

4
djna

Создайте проект J2EE Utility (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.

2
Kelly S. French

Ответ Томаса работает, но файл 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]

0
Mykael