Как мне сделать в Eclipse, чтобы создать свой собственный пакет Java и проект одновременно? - PullRequest
0 голосов
/ 02 сентября 2018

Говорят, что пакет java может содержать классы, интерфейсы, перечисления, ... но я искал по сети, и я все еще не нашел то, что я ищу ... Когда я вижу информацию о пакете файлы, которые они также включают в себя классы ... Моя идея состоит в том, что пакет определяет классы, интерфейсы и т. д. в одном файле, но код класса должен быть в отдельном файле класса, не так ли?

Должен ли я назвать один и тот же пакет в каждом классе, который я создаю для Eclipse, чтобы собрать их все вместе в одном пакете без необходимости в файле информации о пакете? С другой стороны, действительно ли необходимо, чтобы Eclipse создавал treedir для каждого пакета? Могу ли я просто определить в файле пакета, где расположены классы? Каким будет содержимое файла информации о пакете?

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

То, что я пытаюсь сделать, - это создание общего пользовательского пакета для использования его в нескольких проектах, но я хочу, чтобы он был связан, а не скопирован в каждый проект, поэтому я изменяю код только один раз ... это возможно в Затмение

Идея 1: + пакетный файл со всеми определениями и расположением классов + куча класов, разбитых по темам в разных папках + eclipse будет работать со связанным файлом пакета, создавая пакет в дереве папок, содержащий классы, на которые есть ссылки в пакете.

Идея 2: + нет файла пакета + каждый класс скажет, в каком пакете находится, включая имя пакета + eclipse будет работать со связанной группой классов, которая ссылается на один и тот же пакет, так что это то, что он создает в дереве проекта.


Обновление 20180904:

  • Я хотел бы хранить все мои классы в отдельной папке, например "... / classes / *. Java"

  • Я планирую ссылку некоторые из этих классов в пакете, который позволяет среда Eclipse, скажем "... / src / com.dataproc / class1.java ..."

  • Я хотел бы скомпилировать пакет и подготовить его для проекта, который я разрабатываю, и для других проектов в специальном каталоге, скажем "... / mylib / common / *. Jar

  • Когда я говорю «одновременно», это потому, что я хочу работать в одной среде, создавая классы для моего пакета и моего проекта.

Как вы можете подумать, я все еще новичок с Java и Eclipse, но, эй, хочу учиться! Я должен сказать, что просмотрел упомянутую информацию Oracle о пакетах , но у меня все еще нет четкого представления о том, как действовать дальше. Для меня это слишком просто, поэтому я не понимаю, нужно ли мне объявлять пакет внутри каждого файла java класса или объявлять все классы, которые я хочу, внутри какого-то файла package-info.java, я знаю, что мне нужно использовать » импортировать mypackagename. * "внутри моего проекта ...

Любая помощь или ориентация действительно приветствуются.


Обновление 20180926: Этот вопрос был решен из этого связанного вопроса

1 Ответ

0 голосов
/ 02 сентября 2018

Прежде всего я пытаюсь уточнить значение java пакета , package-info.java файла и JAR файла.

Концепция пакета Java не зависит от IDE, которую вы используете для разработки. Из Документация Oracle - Создание и использование пакетов : Java-пакет - это группа связанных типов, обеспечивающих защиту доступа и управление пространством имен. Обратите внимание, что типы относятся к классам, интерфейсам, перечислениям и типам аннотаций.

Суть в том, что классы в одном и том же пакете могут получать доступ к закрытым и защищенным членам друг друга . Это решающий фактор, который вы должны учитывать, когда вам нужно организовать исходный код внутри ваших пакетов.


Основная цель package-info.java файла состояла в том, чтобы создать пространство для аннотаций, примененных к пакету, помимо предоставления места для javadoc уровня пакета. [ Блог Оракула Джозефа Д. Дарси ]


JAR обозначает Java ARchive . Это формат файла, основанный на популярном формате ZIP и используемый для объединения множества файлов в один.

Таким образом, формат файла JAR является основным стандартом, используемым для объединения множества файлов классов Java и связанных метаданных и ресурсов (текста, изображений и т. Д.) В один файл для распространения .


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

Если вы хотите сделать это правильно, вы должны структурировать свои проекты следующим образом:

  • Организуйте повторно используемые компоненты в конкретном проекте, который теперь называется A . A может содержать столько пакетов, сколько требуется. A необходимо построить и развернуть, чтобы они были доступны другим клиентам. Существуют инструменты, которые могут помочь вам выполнить эти требования (наиболее часто используемыми инструментами для автоматизации сборки для Java являются Maven и Gradle ).
  • Project Скомпилированный исходный код доступен в формате файла JAR .
  • Другие проекты могут повторно использовать функции, предоставляемые A , скажем, B - это проект, который зависит от A : для повторного использования компонентов A файл проекта A jar должен быть доступен в пути к классам B .
  • Эти требования могут быть легко удовлетворены вашей IDE при разработке ваших проектов, но когда вам приходится распространять свои конечные продукты, ранее упомянутые инструменты являются наилучшими решениями.
...