Как сделать пакет Eclipse ТОЛЬКО необходимыми библиотеками? - PullRequest
1 голос
/ 01 июля 2019

После разработки Java-приложения в Eclipse я хотел бы развернуть его, упаковав его в исполняемый файл .jar с только минимумом, необходимым основным методом и его зависимостями.

У меня есть несколько пакетов в моей рабочей области, с которыми я тоже работаю, но не обязательно должен быть в результирующем файле .jar.

Eclipse exportation snapshot

Когда я пытаюсь экспортировать, он ясно говорит, что там будут необходимые библиотеки, но также и другие независимые пакеты тоже внутри. (С опцией экспорта происходят точно так же)

Package view snapshot

Я хочу экспортировать только главный класс пакета com.project..., но также test.project... был упакован.

В проекте у меня явно есть пакеты com... и test....

Как я мог заставить его действительно упаковать только требуемых?

Заранее спасибо.

ВРЕМЕННЫЙ ОТВЕТ (2019-07-03):

Похоже, что пока нет способа достичь этого автоматически, поэтому ответ от @ arnonuem кажется хорошим обходным путем.

Если есть хорошие новости, пожалуйста, улучшайте эту ветку.

Спасибо всем.

Ответы [ 2 ]

2 голосов
/ 01 июля 2019

Я бы создал файл ANT для этой конкретной задачи. Там вы можете свободно настроить, какие пакеты должны быть скомпилированы в jar, а какие нет. Пожалуйста, вдохновите себя, читая этот пример.

Для общего обзора, о чем я говорю, вы можете быстро взглянуть на это. https://howtodoinjava.com/ant/ant-build-jar-file-example/

Пожалуйста, сфокусируйтесь на

<javac srcdir="${src.dir}" destdir="${build.dir}" classpathref="classpath"
        includes="src/path/to/TheClassToBeIncluded.java" />

Для получения более подробной информации о том, как включать или исключать файлы или пакеты, вы должны обратиться к документации здесь:

https://ant.apache.org/manual/Tasks/javac.html

Внизу этой страницы есть список с допустимыми параметрами сборки.

1 голос
/ 01 июля 2019

Прежде всего, мы должны различать сборку и экспорт.

Build переводит .java исходный код в .class байт-код и в основном копирует другие ресурсы. При этом он обычно объединяет все исходные папки в одну папку bin.

Экспорт запускает сборку (или использует Автоматическая сборка ), а затем изменяет полученные .class файлы и другие ресурсы. Обычно он упаковывает их в один или несколько .jar файлов.

Поэтому наше решение включает в себя два этапа:

  1. собрать все, что нежелательно для экспорта, в отдельную папку (или более)
  2. экспорт из определенной папки (или более)

Для шага 1 см. этот ответ о переполнении стека.

В двух словах: перейдите на вкладку Project Properties> Java Build Path> Source> Allow output folder for source folders. Это позволяет вам настроить определенную выходную папку для каждой исходной папки в центрированном средстве просмотра.

Для шага 2 нам нужно понять, что Экспорт файла Jar-файла eclipse использует Launch Configuration .

Поэтому перед экспортом перейдите на Run> Run Configurations..., выберите вкладку Classpath, удалите значение по умолчанию User Entries и нажмите Advanced.... Теперь вы можете Add Folders содержать ваши встроенные классы.

Возможно, вы захотите использовать отдельные конфигурации запуска для внутреннего тестирования и экспорта.

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