Eclipse: упаковка нескольких проектов в один JAR - PullRequest
4 голосов
/ 28 августа 2011

У меня есть несколько проектов, но только один с классом Main. Тот, у кого класс Main, зависит от других проектов. На эти проекты есть ссылки в Eclipse, но когда я экспортирую свой JAR, другие проекты не экспортируются с этим JAR.

Как я могу экспортировать свой основной проект и "включить" другие проекты в тот же JAR? Я бы предпочел не иметь несколько JAR-файлов и определить их в моем Classpath в командной строке.

Ответы [ 3 ]

8 голосов
/ 28 августа 2011

Не делай этого нелегко. Используйте собственный экспортер Eclipse. Сначала убедитесь, что у вас есть другие проекты, обозначенные как Projects в главном проекте Build Path . После этого просто щелкните правой кнопкой мыши основной проект, выберите Экспорт , а затем Java> Файл JAR для запуска . Выберите конфигурацию запуска (которую вы использовали для локального тестирования класса main()), а затем у вас есть 3 Library Handling опции для упаковки JAR:

enter image description here

Первый вариант будет просто переупаковывать классы других проектов внутри JAR. Все просто собрано.

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

Третий вариант - это то, что вам не нужно для этого конкретного случая.

1 голос
/ 28 августа 2011

Если бы я делал это, я бы 'mavenize' проектов, используя зависимость maven для каждой зависимости проекта, а затем использовать

mvn assembly:assembly

см. http://maven.apache.org/plugins/maven-assembly-plugin/, чтобы узнать больше об этом плагине

1 голос
/ 28 августа 2011

Я думаю, что Eclipse изначально использует скрипты ant и build.xml для Java-проектов, Maven можно использовать, и в обоих случаях есть способы объединить их в одну банку, эта ветка отвечает на тот же вопрос, который я думаю:

Чистый способ объединения нескольких банок?Предпочтительно с использованием Ant

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...