Построить проект в JAR автоматически в Eclipse


171

У меня есть проект Eclipse, где я хочу, чтобы мой Java-проект был встроен в JAR-файл автоматически. Я знаю, что у меня есть возможность экспортировать проект в JAR; если я сделаю правый клик; но что я действительно ищу, так это то, что Eclipse автоматически создает .classфайлы проекта и помещает их в целевую папку; он также должен автоматически создать JAR-файл и скопировать последний JAR-файл в определенное или определенное место.

Есть ли возможность настроить Eclipse таким образом, чтобы автоматически создавать JAR-файлы?

Просто чтобы было понятно, ребята, достаточно терпеливы, чтобы ответить на мой вопрос; Я не рассматриваю ANT как решение; как я уже использую, но то, что я хотел бы, это то, что запускается автоматически либо с помощью триггера, основанного на времени, либо с немедленной сборкой с изменением.


1
Мое личное мнение: используйте m2e, интегрированную в Eclipse maven, чтобы он вывел банку для вас как часть сборки. Недавно я пытался использовать Eclipse без Maven и не могу поверить, насколько примитивен базовый Java-компоновщик.
Крейг Рингер

1
Для 2018 года используйте инструмент сборки вместо IDE-специфических функций. Maven покупает вам независимость IDE и поддержку командной строки.
Торбьерн Равн Андерсен

@Craig Ringer - есть ли ссылка, как это сделать?
Нсандерсен

Ответы:


27

Проверять, выписываться Apache Ant

Можно использовать Ant для автоматической сборки с помощью Eclipse, вот как


Я уже использую Apache Ant для сборки и создания Jar. Но то, что я действительно искал, было обходом apache ant и непосредственным использованием eclipse.
Приянк

Извините, я не просматривал статью в ссылке ранее. Это действительно говорит о том, что мне нужно. Спасибо.
Приянк

1
Ответ Конрада более точно соответствует тому, что искал ОП.
Ликон

Ликоно, я не согласен - ОП хотел, чтобы банку обновляли, и экспорт файла банки не пытается решить эту проблему.
Джеймс Мур

1
В июле 2011 года в статье, на которую ссылается @Peter, вообще не говорится о том, как создать jar-файл.
Джеймс Мур

288

Вы хотите .jardescфайл. Они не запускаются автоматически, но в течение 2 кликов.

  1. Щелкните правой кнопкой мыши по вашему проекту
  2. выберите Export > Java > JAR file
  3. Выберите включенные файлы и имя выходного JAR, затем нажмите Next
  4. Установите флажок «Сохранить описание этого JAR- .jardescфайла в рабочей области» и выберите имя для нового файла.

Теперь все, что вам нужно сделать, это щелкнуть правой кнопкой мыши по .jardescфайлу и выбрать, Create JARи он будет экспортировать его в том же месте.


Грустно, что этот ответ не получил больше голосов (или лучший ответ) несколько месяцев назад. Ну что ж, сейчас Конрада больше нет.
Дэн Розенстарк

25
В Eclipse Galileo мне пришлось заменить шаг 1 на Файл -> Экспорт -> Java -> JAR-файл.
Мэтт Хаггинс

9
Есть ли способ автоматизировать шаг «щелкните правой кнопкой мыши -> Создать JAR»?
Асаф

4
Есть ли способ автоматизировать шаг «щелчок правой кнопкой мыши -> Создать JAR» или связать его с ключевым сочетанием?
Pacerier

5
Я использую «Export ... -> Java -> Runnable JAR file», чтобы создать именно это.
TedTrippin

70

Создайте файл 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 в проекте Eclipse

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

Конфигурация Ant Builder Шаг построения - вкладка «Цели»

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

В окне вывода 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

РЕДАКТИРОВАТЬ: Некоторые полезные комментарии @yeoman и @betlista

@yeoman Я думаю, что правильным включением будет /.class, а не * .class, так как большинство людей используют пакеты, и поэтому рекурсивный поиск файлов классов имеет больше смысла, чем плоское включение

@betlista Я бы порекомендовал не иметь build.xml в папке src


2
Да, вы можете выбрать цели для шага сборки следующим образом: после очистки, ручной сборки, автоматической сборки и во время очистки. Auto Build должен дать вам то, что вы хотите :)
Томас Братт

8
После того, как попробовал оба, это решение кажется намного лучше чем решение Конрада. Это требует, чтобы вы вручную выяснили некоторые пути в вашем файле сборки, но это позволяет автоматическую сборку (вместо 2 щелчков) и позволяет легко настроить (например, скопировать флягу после сборки). Вот как собрать файл jar, если файл сборки находится в корневом каталоге и имеет несколько вложенных уровней пакетов:<jar jarfile="dist/mypackage.jar" basedir="bin/" includes="**/*.class" />
worldsayshi

3
+1 Как это не принятый ответ и даже не самый одобренный?
Хуан Гарсия

2
Большое спасибо. Я бы порекомендовал не иметь build.xmlв папке src, но остальное работает отлично, удивительно!
Бетлиста

1
Я думаю, что правильным включением будет / .class, а не * .class, так как большинство людей используют пакеты, и поэтому рекурсивный поиск файлов классов имеет больше смысла, чем плоское включение. Удалит мои +1 до тех пор, потому что ответ обычно не работает, как он есть.
старшина

13

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


5

Что касается ответа Питера и дополнения Мишеля к нему, вы можете найти полезной статью Как автоматически сгенерировать файл .jar в Java-проекте Eclipse . Поскольку даже у вас есть файл "* .jardesc" в вашем проекте, вы должны запустить его вручную. Это может немного остудить вашу «затмение кликов».


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="bin/" includes="**/*.class" />
  </target>
</project>

(Обратите внимание на двойную звездочку - она ​​скажет build искать файлы .class во всех подкаталогах.)


0

Создание панели запуска компоновщика является проблемой, поскольку 2 проекта не могут иметь одинаковое имя сборки внешнего инструмента. Каждое имя должно быть уникальным. В настоящее время я сталкиваюсь с этой проблемой, чтобы автоматизировать мою сборку и скопировать JAR во внешнее местоположение.

Я использую Zip Builder от IBM, но это всего лишь помощь, а не реальное.

Люди могут попробовать использовать плагин IBM ZIP Creation. http://www.ibm.com/developerworks/websphere/library/techarticles/0112_deboer/deboer2.html#download

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.