Учебники

Intellij Idea — Deep Dive

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

Понимание проектов

Проект — это приложение или программное обеспечение, над которым вы работаете. Он может содержать несколько модулей, классов, библиотек, конфигурации и так далее. Это самый верхний элемент в иерархии.

Понимание модулей

Модули имеют одну ступеньку ниже «Проект». Модуль — это отдельная сущность, которую можно компилировать, отлаживать и запускать независимо от других модулей. Один проект может содержать несколько модулей. Вы можете добавлять или удалять модули из проекта в любое время.

В дополнение к этому, мы также можем импортировать существующие модули. Выполните следующие шаги, чтобы импортировать существующие модули —

  • Перейдите в Файл → Структура проекта.
  • Выберите модули и нажмите на значок плюс.
  • Покажет возможность импортировать модуль.

Особенность модулей

Понимание папок

Корень содержимого — это папка, содержащая все файлы, которые составляют ваш модуль. Модуль может иметь более одной папки содержимого. Папки подразделяются на следующие типы —

  • Источники. Назначая эту категорию папке, мы указываем IntelliJ, что эта папка и ее подпапка содержат исходный код Java и должны быть скомпилированы как часть процесса компиляции.

  • Тесты — назначая эту категорию папке, мы указываем IntelliJ, что это место для модульных тестов. Эта папка может получить доступ к классам из папки Sources.

  • Ресурсы — представляет различные файлы ресурсов, используемые в проекте, например, изображения, XML и файлы свойств. В процессе компиляции содержимое этой папки копируется как есть в выходную папку.

  • Исключено — содержимое из исключенной папки не будет проиндексировано IntelliJ. Это означает, что IntelliJ не будет предлагать подсказки для завершения кода и другие подсказки. Например, выходной каталог и целевой каталог по умолчанию исключены.

  • Тестовые ресурсы — это похоже на ресурсы и используется для модульных тестов.

Источники. Назначая эту категорию папке, мы указываем IntelliJ, что эта папка и ее подпапка содержат исходный код Java и должны быть скомпилированы как часть процесса компиляции.

Тесты — назначая эту категорию папке, мы указываем IntelliJ, что это место для модульных тестов. Эта папка может получить доступ к классам из папки Sources.

Ресурсы — представляет различные файлы ресурсов, используемые в проекте, например, изображения, XML и файлы свойств. В процессе компиляции содержимое этой папки копируется как есть в выходную папку.

Исключено — содержимое из исключенной папки не будет проиндексировано IntelliJ. Это означает, что IntelliJ не будет предлагать подсказки для завершения кода и другие подсказки. Например, выходной каталог и целевой каталог по умолчанию исключены.

Тестовые ресурсы — это похоже на ресурсы и используется для модульных тестов.

Корень контента

Понимание библиотек

Библиотека представляет собой сборник разных классов. Библиотека позволяет многократно использовать код. В Java библиотека может быть заключена в ZIP, Jar или просто папку. Мы можем определить библиотеки на трех разных уровнях. Уровни — глобальный, проектный и модульный.

  • Глобальный уровень — общий для всех проектов.

  • Уровень проекта — общий для всех модулей проекта.

  • Уровень модуля — общий для классов этих модулей.

Глобальный уровень — общий для всех проектов.

Уровень проекта — общий для всех модулей проекта.

Уровень модуля — общий для классов этих модулей.

Понимание граней

Грани являются расширениями модулей. Они добавляют поддержку фреймворкам и технологиям. Когда фасет добавляется в модуль, IntelliJ определяет, что он добавляет поддержку. Например, подсказки и помощь в редакторе, новые инструменты в панели окон, загрузка зависимостей и так далее. Вы можете добавить фасеты из окна Файл → Структура проекта, как показано ниже —

Оконная панель

Артефакты

Артефакты являются результатом проекта. Это может быть простой файл JAR, приложение Java EE или приложение Java EJB. Если мы используем внешние инструменты сборки, такие как Gradle или Maven, IntelliJ автоматически добавит для них артефакт. Артефакты можно создать, перейдя в Файл → Структура проекта, как показано ниже —

Артефакты

Импорт существующего проекта

В этом разделе мы поймем, как импортировать существующий проект. Мы можем импортировать проект двумя способами —

  • Импортируйте его из существующего источника
  • Импортируйте его из модели сборки.

В настоящее время он поддерживает инструменты сборки Gradle и Maven. Импортировать проект —

  • Перейдите в Файл → Создать → Проект из существующего источника.
  • Выберите каталог существующего проекта, Maven’s pom.xml или скрипт сборки Gradle.
  • Нажмите на кнопку ОК.

Импорт существующего проекта

Форматы проектов

IntelliJ поддерживает два типа формата проекта: один — на основе каталогов, а другой — на основе файлов . Формат на основе каталогов является более новым, рекомендуется. По умолчанию IntelliJ создает каталог проекта на основе формата. Вы можете выбрать формат проекта при создании нового проекта. В новом окне проекта просто нажмите на дополнительные настройки, как показано на рисунке ниже —

Форматы проектов

Директивный формат проекта

Этот формат помогает создать папку идей в вашем проекте и сохранить все файлы конфигурации в этой папке. Настройки сгруппированы в XML-файлы. Например, он создаст misc.xml, modules.xml, workspace.xml и так далее. Следующий скриншот поможет вам понять, как это работает —

Директивный формат проекта

Файловый формат проекта

Он создаст два файла проекта с расширениями ..ipr и wpr . Файл ipr будет содержать параметры, относящиеся к проекту, а файл wpr будет содержать параметры, относящиеся к рабочей области.

Файловый формат проекта

Чтобы преобразовать файловый проект в проект на основе каталога, перейдите в Файл → Сохранить как формат на основе каталога .

На основе каталогов против файлового формата проекта

По сравнению с форматом проекта на основе файлов формат проекта на основе каталога хранит настройки в отдельной папке со значимыми именами. Другие отличия —

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

Если папка содержит подпапку идеи, то IntelliJ распознает этот проект. Из-за этого вам не нужно явно выбирать проект ipr.

Формат проекта на основе каталогов разбивает настройки на несколько файлов, поэтому проще выбрать конкретный тип настроек для хранения в системе контроля версий.