Я добавил некоторые внешние библиотеки в свой проект java (в netbeans).
Можно ли поместить внешнюю библиотеку jar в java-архив (и не помещать их в отдельный (например) каталог "lib" )?
Поместить внешнюю библиотеку в JAR?
Ответ 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)