- IntelliJ IDEA предлагает особые преимущества для пользователей, переходящих с других IDE, и специально подготовил отличные материалы для них. Просим пользователей, переходящих с других IDE, ознакомиться с ними, это будет очень полезно:
- Для пользователей Eclipse: https://www.jetbrains.com/idea/help/eclipse.html
- Для пользователей NetBeans: https://www.jetbrains.com/idea/help/netbeans.html
Эти два понятия являются обязательными для понимания в 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 называет модулями и библиотеками.
- Обновлено 20170630: новая ссылка: https://www.jetbrains.com/help/idea/about-projects.htmlЧто касается Module, IntelliJ IDEA объясняет следующее:
- Модуль — это дискретная единица функциональности, которую можно компилировать, запускать, тестировать и отлаживать независимо.
- Модули содержат всё, что требуется для выполнения их специфических задач: исходный код, скрипты сборки, юнит-тесты, описания развертывания и документацию. Однако модули существуют и функционируют только в контексте проекта.
- Информация о конфигурации модуля хранится в файле модуля .iml. По умолчанию такой файл расположен в папке корневого содержимого модуля.
- Разработчики обычно обмениваются файлами модуля .iml через систему контроля версий.
- 30.06.2017 Обновлен новый адрес: https://www.jetbrains.com/help/idea/about-modules.html?search=About
По информации выше, мы знаем, что в 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) введение
- Нажмите
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
для различных проектов на вашем компьютере.
- Как показано на рисунке выше, под номером 1,
SDKs
является централизованным местом управления SDK.- Как показано на рисунке выше, под номером 2, кнопка
+
позволяет добавить новый SDK, поддерживаемые типы показаны под номером 3; кнопка-
позволяет удалить выбранный SDK.- Официальная документация: https://www.jetbrains.com/idea/help/sdk.html
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 == и т.д.
![]()
- Как показано на первой картинке, помеченной 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, аннотации типа и т.д.
, это не будет иметь большого значения, и компиляция всё равно завершится ошибкой.
Для крупных проектов SDK
и language level
для каждого модуля могут быть разными. IntelliJ IDEA поддерживает это.
- Как показано на рисунке, помеченном 1, для модуля можно выбрать другой SDK, по умолчанию используется
Project SDK
![]()
- Как показано на рисунке, помеченном 1, для модуля можно выбрать другой
уровень языка
, по умолчанию используетсяуровень языка проекта
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )