1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/yangzjcn-IntelliJ-IDEA-Tutorial

Клонировать/Скачать
project-composition-introduce.md 16 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 09.06.2025 10:56 bf6f59c

Введение в ключевые концепции проекта IntelliJ IDEA

Введение в необходимые материалы

  • IntelliJ IDEA предлагает особые преимущества для пользователей, переходящих с других IDE, и специально подготовил отличные материалы для них. Просим пользователей, переходящих с других IDE, ознакомиться с ними, это будет очень полезно:

Введение в Project и Module

Эти два понятия являются обязательными для понимания в IntelliJ IDEA. Пожалуйста, обязательно ознакомьтесь с ними.

Если вы пользователь Eclipse и уже ознакомились с вышеуказанными ссылками, то IntelliJ IDEA хочет сообщить вам следующее: IntelliJ IDEA не имеет аналога концепции рабочего пространства (workspace) из Eclipse. Многие пользователи, переходящие с Eclipse, имеют тенденцию автоматически пытаться управлять n проектами в одном окне. Это невозможно в IntelliJ IDEA. IntelliJ IDEA предлагает следующий опыт: один Project открывается в одном Window окне.

Что касается Project, IntelliJ IDEA объясняет следующее:> * Все, что вы делаете в IntelliJ IDEA, вы делаете это в контексте проекта. Проект является организационной единицей, которая представляет собой полное программное решение. Он служит основой для помощи в кодировании, массовом рефакторинге, согласованности стиля кодирования и т.д.

  • Ваш окончательный продукт может быть разбит на серию дискретных, изолированных модулей, но это определение проекта объединяет их и связывает в большее целое.
  • Проекты сами по себе не содержат разработанные артефакты, такие как исходный код, скрипты сборки или документация. Они являются самой высокой степенью организации в IDE и определяют проектные настройки, а также коллекции того, что IntelliJ IDEA называет модулями и библиотеками.
  • Модуль — это дискретная единица функциональности, которую можно компилировать, запускать, тестировать и отлаживать независимо.
  • Модули содержат всё, что требуется для выполнения их специфических задач: исходный код, скрипты сборки, юнит-тесты, описания развертывания и документацию. Однако модули существуют и функционируют только в контексте проекта.
  • Информация о конфигурации модуля хранится в файле модуля .iml. По умолчанию такой файл расположен в папке корневого содержимого модуля.
  • Разработчики обычно обмениваются файлами модуля .iml через систему контроля версий.

По информации выше, мы знаем, что в IntelliJ IDEA проект является верхним уровнем, а подуровнем является модуль. Один проект может содержать несколько модулей. В настоящее время структура большинства крупных проектов подобна такой многоуровневой структуре модулей. Такие проекты обычно разделяются на различные модули, например: модуль core, модуль web, модуль plugin, модуль solr и т.д., и между модулями могут быть взаимные зависимости. Из названий этих модулей можно понять, что они находятся в рамках одного проекта и имеют неразрывные бизнес-связи.Поэтому мы можем сделать вывод: один Проект состоит из одного или нескольких Модулей, и модули должны быть в рамках одного проекта, они взаимозависимы. Мы используем слово "всеми силами", потому что Проект в IntelliJ IDEA не имеет никаких настроек кодирования, сборки и т.д., он служит для определения проекта, установления границ и стандартов. Можно сказать, что это просто директория, но с особым названием, которое имеет определенное значение.

Давайте рассмотрим структуру многоуровневых модулей на примере известного проекта spring-framework:

  • Проектный сайт: https://github.com/spring-projects/spring-framework
  • Название Проекта этого проекта: spring-framework. Эта директория служит для ограничения верхнего уровня всех Модулей, она сообщает участникам, что все содержимое этой директории относится к spring-framework. Я никогда не буду размещать исходный код, документацию и файлы Android в этой директории. Эта директория не является реальной директорией, поэтому вы не увидите её на сайте, но при checkout вам нужно будет назвать проект, и по умолчанию это название будет spring-framework.
  • В этом Проекте есть около двадцати Модулей, названия которых имеют определенное значение, например: spring-core, spring-jdbc, spring-jms, spring-orm, spring-web, spring-webmvc и т.д. Мы можем понять их значение по этим названиям. В каждом из этих модулей есть директория src для кодирования и сборки.Описание проекта и модуля> * В отличие от проектов с множеством модулей, небольшие проекты не требуют такой сложной структуры. IntelliJ IDEA поддерживает и структуру с одним модулем, и при создании проекта по умолчанию используется именно такая структура.
  • Как показано на приведенном выше GIF-изображении, при вводе имени проекта (Project name) автоматически изменяются имя модуля (Module name) и расположение файла модуля (Module file Location). При этом расположение проекта (Project location) и расположение файла модуля (Module file Location) совпадают, что означает, что директория проекта и директория модуля являются одной и той же. Поэтому в директории проекта будет находиться директория src, но важно понимать, что сущность это все-таки директория модуля. Окончательно разобрались с понятиями Project и Module в IntelliJ IDEA, но на официальном сайте IntelliJ IDEA данное объяснение недостаточно ясно, особенно для пользователей Eclipse: https://www.jetbrains.com/idea/help/eclipse-faq.html. В частности, следующие два утверждения:
  • Рабочее пространство Eclipse похоже на проект в IntelliJ IDEA
  • Проект Eclipse соответствует модулю в IntelliJ IDEA

Вы можете использовать IntelliJ IDEA Project как рабочее пространство, но, как мы уже объяснили, это не соответствует его изначальному назначению, поэтому не следует воспринимать это как догму. На этот счет также высказались эксперты из zeroturnaround: http://zeroturnaround.com/rebellabs/getting-started-with-intellij-с-user/3/## SDK (Software Development Kit) введение

Введение в SDK

  • Нажмите Ctrl + Shift + Alt + S, чтобы открыть область настроек структуры проекта, как показано на рисунке выше.
  • Как показано на рисунке выше, под номером 1, IntelliJ IDEA поддерживает 6 типов SDK. Самыми распространенными являются JDK и Android SDK. При создании Android SDK вам потребуется предварительно настроить JDK, иначе IntelliJ IDEA выдаст сообщение о необходимости настройки JDK перед настройкой Android SDK.
  • Как показано на рисунке выше, под номером 2, при раскрытии списка отображаются все созданные SDK, что позволяет легко переключаться между ними. В процессе разработки Java-проектов, благодаря поддержке управления несколькими JDK в IntelliJ IDEA, вы можете не беспокоиться о необходимости использования разных JDK для различных проектов на вашем компьютере.

Введение в SDK

  • Как показано на рисунке выше, под номером 1, SDKs является централизованным местом управления SDK.
  • Как показано на рисунке выше, под номером 2, кнопка + позволяет добавить новый SDK, поддерживаемые типы показаны под номером 3; кнопка - позволяет удалить выбранный SDK.
  • Официальная документация: https://www.jetbrains.com/idea/help/sdk.html

Введение в уровень языкаВ других IDE я не встречал настроек, подобных language level, поэтому можно считать, что это уникальная функция IntelliJ IDEA. Однако на официальном сайте IntelliJ IDEA нет специального раздела, посвященного language level. Возможно, IntelliJ IDEA считает этот аспект частью JDK и поэтому не рассматривает его отдельно. Поэтому здесь я хочу поделиться своим пониманием. Мы должны знать, что каждый новый выпуск JDK включает в себя новые возможности, и эти новые версии обычно поддерживают обратную совместимость с предыдущими версиями. IntelliJ IDEA описывает эти новые возможности JDK следующим образом:

  • Новые возможности JDK 6: @Override в интерфейсах
  • Новые возможности JDK 7: Diamond, ARM, multi-catch и т.д.
  • Новые возможности JDK 8: Lambda, аннотации типа и т.д.
  • Новые возможности JDK 9: Проект Jigsaw и т.д.
  • etc. == et cetera == and so on == и т.д.language level введено

language level введено

  • Как показано на первой картинке, помеченной 1, используется JDK 7, и значение SDK default равно 7 - Diamonds, ARM, multi-catch и т.д..
  • Как показано на второй картинке, помеченной 1, используется JDK 8, и значение SDK default равно 8 - Lambda, аннотации типа и т.д..

Когда мы используем JDK 8, мы можем поддерживать только те возможности, которые есть в JDK 8 и ниже. Поэтому мы можем выбрать только language level 8 и ниже. Если проект использует JDK 8, но код не использует новые возможности JDK 8 и использует только возможности JDK 7, мы можем выбрать 7 - Diamonds, ARM, multi-catch и т.д..

Таким образом, language level определяет минимальные требования к использованию возможностей JDK для проверки компиляции проекта.

Теперь предположим, что у нас есть проект, использующий новые возможности JDK 8: lambda синтаксис, но сам JDK выбран как JDK 7. Даже если language level выбран как 8 - Lambda, аннотации типа и т.д., это не будет иметь большого значения, и компиляция всё равно завершится ошибкой.

Module и SDK, language level

Для крупных проектов SDK и language level для каждого модуля могут быть разными. IntelliJ IDEA поддерживает это.

Module и SDK, language level

  • Как показано на рисунке, помеченном 1, для модуля можно выбрать другой SDK, по умолчанию используется Project SDKМодуль и SDK, уровень языка
  • Как показано на рисунке, помеченном 1, для модуля можно выбрать другой уровень языка, по умолчанию используется уровень языка проекта

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/yangzjcn-IntelliJ-IDEA-Tutorial.git
git@api.gitlife.ru:oschina-mirror/yangzjcn-IntelliJ-IDEA-Tutorial.git
oschina-mirror
yangzjcn-IntelliJ-IDEA-Tutorial
yangzjcn-IntelliJ-IDEA-Tutorial
master