Подтвердить что ты не робот

Поместить внешнюю библиотеку в JAR?

Я добавил некоторые внешние библиотеки в свой проект java (в netbeans).
Можно ли поместить внешнюю библиотеку jar в java-архив (и не помещать их в отдельный (например) каталог "lib" )?

4b9b3361

Ответ 1

Конечно, вы можете. Существует несколько проектов с открытым исходным кодом, которые можно загрузить с помощью "пучка пакетов", который содержит все зависимости.
Вам нужно извлечь все банки, а затем снова добавить их в один файл.
Пример этого с Ant можно увидеть здесь.

Ответ 2

Проект JarJar позволяет вам зависеть от jars в одном файле jar для распространения.

Проект предоставляет задачу ant для упаковки, а в проектах netbeans используется ant для их процесса сборки, вы должны легко интегрировать ее в свою сборку.

Ответ 3

Да, это возможно, и полученная баночка на самом деле называется "uberjar" или "megajar". В принципе, для создания "uberjar" вам нужно будет извлечь содержимое внешней библиотеки (используя jar -x) и переупаковать ее в свою собственную банку (с помощью jar -c). Это может быть достигнуто вручную или с помощью инструмента построения, такого как Ant (и дополнительной поддержки проекта, такого как One-JAR) или Maven, который имеет встроенную поддержку для этого через maven-assembly-plugin (или плагин maven-shade)

Ответ 4

Если речь идет о упаковке банки в банки, это всегда делается для веб-приложений в военных или ушных файлах. Если ваше приложение является автономным, вы можете разархивировать банки и упаковать их все вместе в одну полученную банку с помощью задач Ant jar и unjar: http://ant.apache.org/manual/Tasks/unzip.html Но я бы не рекомендовал это делать.

Ответ 5

Если вы используете Maven, вы можете рассмотреть плагин Maven shade или плагин сборки.

Ответ 6

Есть простой способ сделать это со встроенными скриптами ant.

Был еще один вопрос SO, указывающий на эту статью: http://mavistechchannel.wordpress.com/2010/08/17/how-to-build-a-single-jar-file-with-external-libs/

Я добавил его, но был таким noob, я не знал, как его использовать. В этой статье был отличный визуальный урок. В основном, после изменения вашей ant script, перейдите на вкладку "файлы" (в проводнике слева) = > щелкните правой кнопкой мыши на xml = > run tasks = > другие задачи = > пакет для хранилища (или что вы назвали script)