Intellij idea авто конструктор

Русские Блоги

Искать знания голодно, смирение глупо.

В Java очень сложно, если поля таблицы данных должны быть написанными вручную классами сущностей.

Таким образом, ниже объясняется, как использовать инструменты разработки Intellij для автоматического создания классов сущностей.Классы сущностей показаны на рисунке ниже.
Intellij idea авто конструктор
Перейти непосредственно к шагу

Один, установить часовой пояс MySQL

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

После создания базы данных MySQL. Часовой пояс по умолчанию на восемь часов короче, чем в Восточном восьми округе. Если MySQL используется в операторе SQL, это будет на восемь часов короче обычного времени. Поэтому вам нужно изменить часовой пояс системы SQL.

1. Сначала определите, настроены ли переменные среды MySQL (как показано ниже).
Intellij idea авто конструктор
После настройки переменных среды вы можете продолжить следующие операции.

4. Далее, давайте установим часовой пояс и введем set global time_zone = ‘+8:00’; (Как показано ниже).
Intellij idea авто конструктор
Это успешная настройка.

Если мы в безопасности, мы можем перезапустить командное окно и повторить шаги 2 и 3 выше (как показано ниже), проблем не будет.
Intellij idea авто конструктор

Два, проект добавить представление базы данных

1. Откройте средство разработки Intellij IDEA, а затем откройте представление базы данных (как показано ниже).
Intellij idea авто конструктор
После открытия справа появится окно (как показано ниже).
Intellij idea авто конструктор
Если он не появляется автоматически, вы можете нажать Database выскакивать.

Драйвер также может выбрать MySQL для 5.1.

4. Щелкните Test Connection Тест кнопки (как показано ниже).
Intellij idea авто конструктор
Как показано на рисунке, это успешно! Нажмите ОК, чтобы подключиться к MySQL.

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

(Поскольку автор уже скачал его, для этого шага нет изображения).

дополнение

Если вы выберете MySQL при сопоставлении версии драйвераIntellij idea авто конструктор

Не имеет значения, является ли база данных другой версией.

Найдите MySQL в списке драйверов слева, выберите нужную версию в файлах драйверов справа и сохраните ее.
Intellij idea авто конструктор

В-третьих, сгенерируйте классы сущностей

1. Сначала откройте представление базы данных,Выберите таблицу данных для создания, щелкните правой кнопкой мыши и выберите «Создать».
Intellij idea авто конструктор
2. Во всплывающем окне выбирается расположение папки хранения класса сущности.
Intellij idea авто конструктор

Четыре, настраиваемый файл сценария

Создание команд класса сущности Generate POJOs.groovy Скрипт выполняется.

Почему вы хотите настроить файл сценария?

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

4. После сохранения файла снова откройте просмотр базы данных и выберите вновь созданный Generate MyPOJOs.groovy Файл сценария для создания классов сущностей.
Intellij idea авто конструктор
5. Импортируйте в pom.xml lombok полагаться.

Источник

Создание конструктора Java для класса в IntelliJ

Краткое и практическое введение в создание конструкторов классов Java с помощью Intellij IDEA.

1. введение

Шаблон проектирования Builder является одним из наиболее широко используемых шаблонов создания. Это помогает нам строить сложные объекты.

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

В этом уроке мы рассмотрим различные способы автоматического создания классов конструкторов в IntelliJ IDEA. Мы рассмотрим встроенные функции, которые IntelliJ предоставляет из коробки, а также сторонние плагины.

2. Начальная настройка

На протяжении всей этой статьи мы будем использовать версию 2019.1.3 IntelliJ IDEA Community edition, которая является самой последней версией на момент написания статьи. Однако все методы, представленные в примерах, должны отлично работать и с любой другой версией IDEA.

3. Использование встроенных функций IntelliJ

Чтобы создать конструктор для Книга класс используя встроенные инструменты IntelliJ, нам нужен соответствующий конструктор.

Давайте создадим его:

Мы можем дополнительно настроить некоторые параметры для класса builder, такие как его имя и целевой пакет:

В результате мы создали класс Book Builder :

3.1. Префикс пользовательских установщиков

Общепринятой практикой является использование с префиксом для методов setter в классах builder.

Чтобы изменить префикс по умолчанию, нам нужно выбрать значок Переименовать префикс установщиков в правом верхнем углу окна параметров :

3.2. Статический внутренний конструктор

Прежде всего, нам нужно вручную создать пустой внутренний класс и сделать конструктор закрытым:

Кроме того, мы должны выбрать Использовать существующий в окне параметров и указать на наш недавно созданный класс:

4. Использование плагина Inner Builder

Давайте теперь посмотрим, как мы можем создать конструктор для Книга использование класса Внутренний Строитель плагин.

В качестве альтернативы мы можем вызвать плагин Inner Builder напрямую, нажав Alt+Shift+B (на ПК):

Как мы видим, есть несколько вариантов, из которых мы можем выбрать, чтобы настроить созданный конструктор.

Давайте посмотрим, как строитель генерируется, когда все параметры не отмечены:

Плагин Inner Builder по умолчанию реализует конструкторы как статические внутренние классы.

5. Использование плагина Builder Generator

Наконец, давайте посмотрим, как работает генератор Builder/|.

Аналогично, что касается внутреннего конструктора, мы можем либо нажать Alt+Insert (на ПК) и выбрать Builder option, либо использовать Alt+Shift+B shortcut.

Как мы видим, у нас есть три варианта на выбор для настройки BookBuilder :

Давайте оставим все опции непроверенными и посмотрим сгенерированный класс builder:

Два других, однако, более интересны, и мы рассмотрим их в следующих разделах.

5.1. Вариант метода “но”

Если мы выберем этот параметр, плагин добавит метод but() в класс BookBuilder :

Теперь давайте представим, что мы хотим создать три книги с одним и тем же автором и одинаковым количеством страниц, но с разными названиями и датами публикации. Мы можем создать базовый конструктор с уже заданными общими свойствами, а затем использовать метод but() для создания из него нового Book Builder s (и Book s позже).

Давайте рассмотрим пример:

5.2. Используйте опцию с одним полем

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

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

6. Заключение

В этом уроке мы рассмотрели различные способы создания классов конструкторов в IntelliJ.

Источник

Как начать пользоваться Swing GUI-визардом IntelliJ IDEA. Подробная инструкция

Давно не писал настольных приложений на Java вообще и с использовании Swing в частности. Однако, возникла необходимость немного по GUIть. В качестве инструмента выбрал IntelliJ IDEA Community edition, 2016.1 версии.

Взялся ваять и, естественно, первое, на что налетел — хотя со времён Borland Java Builder 2006 воды утекло немало, экранные интерфейсы создавать проще не стало, скорее наоборот. А одной из причин выбора IDEA было как раз наличие Swing дизайнера «из коробки», однако как им пользоваться с ходу решительно непонятно — форма генерится, класс создаётся, создаются переменные контролов из дизайнера… но и только: при создании нашего класса форма на экране не появляется

Пошарил интернет, информации приблизительно ноль. Народ говорит, мол, «создавай и — вперёд!». Хм…

По результатам небольших мытарств на эту тему решил опубликовать инструкцию, так как мне с учётом былого опыта было искать намного легче, чем новичку, который вообще в первый раз ваяет форму на Swing.

Создание Swing GUI форм средствами JetBrains IntelliJ IDEA 2016.1

Intellij idea авто конструктор

Intellij idea авто конструктор

В итоге нам действительно сгенерили класс-наследник JDialog (который можно создать и использовать) и форма к нему.
Запускаем наш проект на выполнение и… о ужасчудо! при компиляции IDEA добавляет в конец нашего файла некоторый дополнительный код.

Теперь, когда мы поняли, как оно работает, перейдём к созданию прочих форм — необязательно диалогов.

Генерится класс и форма к нему. Накидываем на форму несколько контролов. В GUI дизайнере смотрим имя корневого элемента (обычно panel1, если IDEA не задала имя, а такое бывает, задайте принудительно — я для наглядности назвал rootPanel).

Intellij idea авто конструктор

Переходим к исходному коду нашего класса.

Итак:
1. Добавляем для нашего класса наследование «extends JFrame»;
2. Добавляем конструктор класса со строками:

Всё. Форма готова к употреблению. Остальное смотрите в многочисленных инструкциях по Swing.

P.S. Как вариант, можно не наследовать наш класс от JFrame, а создать конструктор вида:

Такой вариант тоже работает — возможно, кому-то пригодится.

Источник

Compile and build applications with IntelliJ IDEA

The IntelliJ IDEA compilation and building process compiles source files and brings together external libraries, properties files, and configurations to produce a living application. IntelliJ IDEA uses a compiler that works according to the Java specification.

You can compile a single file, use the incremental build for a module or a project, and rebuild a project from scratch.

If you have a pure Java or a Kotlin project we recommend that you use IntelliJ IDEA to build your project since IntelliJ IDEA supports the incremental build which significantly speeds up the building process.

However, IntelliJ IDEA native builder might not correctly build the Gradle or Maven project if its build script file uses custom plugins or tasks. In this case, the build delegation to Gradle or Maven can help you build your project correctly.

Compile a single file or class

Open the needed file in the editor and from the main menu, select Build | Recompile ‘class name’ ( Ctrl+Shift+F9 ).

If errors occur during the compilation process, IntelliJ IDEA will display them in the Review compilation and build output along with warning messages.

Change the compilation output locations

Intellij idea авто конструктор

Inside the output directory, IntelliJ IDEA also creates subdirectories for each of your modules.

The default paths for subdirectories are as follows:

At the project level, you can change the

/out part of the output path. If you do so (say, specify some instead of

At the module level, you can specify any desirable compilation output location for the module sources and tests individually.

Specify compilation output folders

Open the Project Structure dialog ( File | Project Structure Ctrl+Alt+Shift+S ).

Intellij idea авто конструктор

Intellij idea авто конструктор

Build

When you change any class inside the build target and then execute the build action, IntelliJ IDEA performs the incremental build that compiles only the changed classes. IntelliJ IDEA also recursively builds the classes’ dependencies.

Build a module, or a project

Select a module or a project you want to compile and from the main menu, select Build | Build Project ( Ctrl+F9 ).

IntelliJ IDEA displays the compilation results in the Review compilation and build output.

If you add a module dependency to your primary module and build the module, IntelliJ IDEA builds the dependent module as well and displays it in the output directory alongside the primary one. If the dependent module has its own module dependencies, then IntelliJ IDEA compiles all of them recursively starting with the least dependent module.

Intellij idea авто конструктор

The way the module dependencies are ordered may be very important for the compilation to succeed. If any two JAR files contain classes with the same name, the IntelliJ IDEA compiler will use the classes from the first JAR file it locates in the classpath.

For more information, see Module dependencies.

Rebuild

When you execute a rebuild command, IntelliJ IDEA cleans out the entire output directory, deletes the build caches and builds a project, or a module from scratch. It might be helpful, when the classpath entries have changed. For example, SDKs or libraries that the project uses are added, removed or altered.

Rebuild a module, or a project

From the main menu, select Build | Rebuild Project for the entire project or Build | Rebuild ‘module name’ for the module rebuild.

IntelliJ IDEA displays the build results in the Review compilation and build output.

When the Rebuild Project action is delegated to Gradle or Maven, IntelliJ IDEA doesn’t include the clean task/goal when rebuilding a project. If you need, you can execute the clean command before the rebuild using the Execute Before Rebuild option in the Gradle or Maven tool window.

Background compilation (auto-build)

You can configure IntelliJ IDEA to build your project automatically, every time you make changes to it. The results of the background compilation are displayed in the Problems tool window.

Configure the background compilation

Now when you make changes in the class files, IntelliJ IDEA automatically performs the incremental build of the project.

The automatic build also gets triggered when you save the file ( Ctrl+S ) or when you have the Save files automatically if application is idle for N sec. option selected in the System settings dialog.

Enabling the Build project automatically option also enables Build project in Settings/Preferences | Tools | Actions on Save

When you have the Power Save Mode option ( File | Power Save Mode ) enabled in your project, the auto-build action is disabled, and you need to manually run the build ( Ctrl+F9 ).

Compile before running

By default, when you run an application, IntelliJ IDEA compiles the module where the classes you are trying to run are located.

If you want to change that behavior, you can do so in the Run/Debug Configurations dialog.

Configure a run/debug configuration

In the dialog that opens, create a new or open an existing run configuration.

Click the Modify options link.

Intellij idea авто конструктор

If you need to add a new configuration action, click Intellij idea авто конструкторand from the list that opens, select the desired option.

For example, if you select Build Project then IntelliJ IDEA will build the whole project before the run. In this case, the dependencies that for some reason were not included in the build with the Build action, will be accounted for. If you select the Build, no error check option, IntelliJ IDEA will run the application even if there are errors in the compilation results.

Intellij idea авто конструктор

Review compilation and build output

IntelliJ IDEA reports compilation and building results in the Build tool window, which displays messages about errors and warnings as well as successful steps of compilation.

Intellij idea авто конструктор

If you configured an auto-build, then IntelliJ IDEA uses the Problems tool window for messages. The window is available even if the build was executed successfully. To open it, click Auto-build on the status bar.

Intellij idea авто конструктор

Package an application into a JAR

Create an artifact configuration for the JAR

IntelliJ IDEA creates the artifact configuration and shows its settings in the right-hand part of the Project Structure dialog.

Apply the changes and close the dialog.

Intellij idea авто конструктор

Build the JAR artifact

Intellij idea авто конструктор

Run a packaged JAR

To run a Java application packaged in a JAR, IntelliJ IDEA allows you to create a dedicated run configuration.

If you have a Gradle project, use Gradle to create and run the JAR file.

For Maven projects, you can use IntelliJ IDEA to run the JAR file. If you have a Spring Boot Maven project, refer to the Spring section.

Create a run configuration

Add a name for the new configuration.

Intellij idea авто конструктор

Doing this means that the JAR is built automatically every time you execute the run configuration.

Intellij idea авто конструктор

Run configurations allow you to define how you want to run your application, with which arguments and options. You can have multiple run configurations for the same application, each with its own settings.

Execute the run configuration

As before, the Run tool window opens and shows you the application output.

Intellij idea авто конструктор

If the process has exited successfully, then the application is packaged correctly.

Источник

Фишки IDEA. Часть 1

Хотим поделиться с вами самыми интересными идеями (со ссылками на документацию, где подробно описано, как это работает).

Intellij idea авто конструктор

Фишек и возможностей набралось так много, что пришлось делить весь список на две части. Сегодня поговорим о настройке экрана и организации рабочего пространства. А под конец напомним про множественные курсоры. А в следующий раз речь пойдет об оптимизации рабочего процесса.

Настройка экрана

IDEA допускает гибкую настройку интерфейса. Но тратить время на ковыряния в конфигурации имеет смысл, только если вопрос принципиальный. В ходе наших обсуждений таких вопроса всплыло три:

адаптация отображения под широкий монитор;

режим максимального сосредоточения на коде.

Широкий монитор

Intellij idea авто конструктор

Если ее включить, нижняя панель по ширине будет ограничена основным экраном. Боковые инструменты при этом можно вывести вертикально с нужным количеством столбцов.

Intellij idea авто конструкторНастройка отключена Intellij idea авто конструкторНастройка включена

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

Борьба с вкладками

Только код

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

Intellij idea авто конструктор

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

Организация всех проектов в одном окне

Intellij idea авто конструктор

Проекты не перепутаются. Каждый из них будет смотреть на свой branch, а управлять ими можно будет через меню Git Branches.

Intellij idea авто конструктор

Если модулей станет слишком много, их количество можно изменить в меню Load/Unload Modules. Unload позволяет временно выгрузить некоторые корневые модули из проекта.

IdeaVim

Список команд можно найти в репозитории плагина.

Интеграция с YouTrack

Если команда использует YouTrack, IntelliJ IDEA можно интегрировать с этим инструментом через плагин, который расширяет функционал стандартного таск-менеджера.

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

Множественные курсоры

IDEA поддерживает ввод множественными курсорами. Штука это не новая, но оказалось, что этим не все пользуются.

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

Например, из списка вроде такого:

можно сделать такой:

Это работает, даже если элементы списка имеют разную длину. Для этого при выделении можно использовать сочетание Ctrl + Shift + стрелку вправо. Это сочетание каждым из курсоров выделяет целое слово, вне зависимости от его длины. После этого Ctrl+C копирует в буфер обмена все выделенные слова. В результате из такого списка:

Получаем готовый кусок кода:

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

Статья написана по материалам внутреннего вебинара Максилект.

Источник

Создание конструктора Java для класса в IntelliJ

Краткое и практическое введение в создание конструкторов классов Java с помощью Intellij IDEA.

1. введение

Шаблон проектирования Builder является одним из наиболее широко используемых шаблонов создания. Это помогает нам строить сложные объекты.

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

В этом уроке мы рассмотрим различные способы автоматического создания классов конструкторов в IntelliJ IDEA. Мы рассмотрим встроенные функции, которые IntelliJ предоставляет из коробки, а также сторонние плагины.

2. Начальная настройка

На протяжении всей этой статьи мы будем использовать версию 2019.1.3 IntelliJ IDEA Community edition, которая является самой последней версией на момент написания статьи. Однако все методы, представленные в примерах, должны отлично работать и с любой другой версией IDEA.

3. Использование встроенных функций IntelliJ

Чтобы создать конструктор для Книга класс используя встроенные инструменты IntelliJ, нам нужен соответствующий конструктор.

Давайте создадим его:

Мы можем дополнительно настроить некоторые параметры для класса builder, такие как его имя и целевой пакет:

В результате мы создали класс Book Builder :

3.1. Префикс пользовательских установщиков

Общепринятой практикой является использование с префиксом для методов setter в классах builder.

Чтобы изменить префикс по умолчанию, нам нужно выбрать значок Переименовать префикс установщиков в правом верхнем углу окна параметров :

3.2. Статический внутренний конструктор

Прежде всего, нам нужно вручную создать пустой внутренний класс и сделать конструктор закрытым:

Кроме того, мы должны выбрать Использовать существующий в окне параметров и указать на наш недавно созданный класс:

4. Использование плагина Inner Builder

Давайте теперь посмотрим, как мы можем создать конструктор для Книга использование класса Внутренний Строитель плагин.

В качестве альтернативы мы можем вызвать плагин Inner Builder напрямую, нажав Alt+Shift+B (на ПК):

Как мы видим, есть несколько вариантов, из которых мы можем выбрать, чтобы настроить созданный конструктор.

Давайте посмотрим, как строитель генерируется, когда все параметры не отмечены:

Плагин Inner Builder по умолчанию реализует конструкторы как статические внутренние классы.

5. Использование плагина Builder Generator

Наконец, давайте посмотрим, как работает генератор Builder/|.

Аналогично, что касается внутреннего конструктора, мы можем либо нажать Alt+Insert (на ПК) и выбрать Builder option, либо использовать Alt+Shift+B shortcut.

Как мы видим, у нас есть три варианта на выбор для настройки BookBuilder :

Давайте оставим все опции непроверенными и посмотрим сгенерированный класс builder:

Два других, однако, более интересны, и мы рассмотрим их в следующих разделах.

5.1. Вариант метода “но”

Если мы выберем этот параметр, плагин добавит метод but() в класс BookBuilder :

Теперь давайте представим, что мы хотим создать три книги с одним и тем же автором и одинаковым количеством страниц, но с разными названиями и датами публикации. Мы можем создать базовый конструктор с уже заданными общими свойствами, а затем использовать метод but() для создания из него нового Book Builder s (и Book s позже).

Давайте рассмотрим пример:

5.2. Используйте опцию с одним полем

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

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

6. Заключение

В этом уроке мы рассмотрели различные способы создания классов конструкторов в IntelliJ.

Источник

Русские Блоги

Искать знания голодно, смирение глупо.

В Java очень сложно, если поля таблицы данных должны быть написанными вручную классами сущностей.

Таким образом, ниже объясняется, как использовать инструменты разработки Intellij для автоматического создания классов сущностей.Классы сущностей показаны на рисунке ниже.
Intellij idea авто конструктор
Перейти непосредственно к шагу

Один, установить часовой пояс MySQL

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

После создания базы данных MySQL. Часовой пояс по умолчанию на восемь часов короче, чем в Восточном восьми округе. Если MySQL используется в операторе SQL, это будет на восемь часов короче обычного времени. Поэтому вам нужно изменить часовой пояс системы SQL.

1. Сначала определите, настроены ли переменные среды MySQL (как показано ниже).
Intellij idea авто конструктор
После настройки переменных среды вы можете продолжить следующие операции.

4. Далее, давайте установим часовой пояс и введем set global time_zone = ‘+8:00’; (Как показано ниже).
Intellij idea авто конструктор
Это успешная настройка.

Если мы в безопасности, мы можем перезапустить командное окно и повторить шаги 2 и 3 выше (как показано ниже), проблем не будет.
Intellij idea авто конструктор

Два, проект добавить представление базы данных

1. Откройте средство разработки Intellij IDEA, а затем откройте представление базы данных (как показано ниже).
Intellij idea авто конструктор
После открытия справа появится окно (как показано ниже).
Intellij idea авто конструктор
Если он не появляется автоматически, вы можете нажать Database выскакивать.

Драйвер также может выбрать MySQL для 5.1.

4. Щелкните Test Connection Тест кнопки (как показано ниже).
Intellij idea авто конструктор
Как показано на рисунке, это успешно! Нажмите ОК, чтобы подключиться к MySQL.

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

(Поскольку автор уже скачал его, для этого шага нет изображения).

дополнение

Если вы выберете MySQL при сопоставлении версии драйвераIntellij idea авто конструктор

Не имеет значения, является ли база данных другой версией.

Найдите MySQL в списке драйверов слева, выберите нужную версию в файлах драйверов справа и сохраните ее.
Intellij idea авто конструктор

В-третьих, сгенерируйте классы сущностей

1. Сначала откройте представление базы данных,Выберите таблицу данных для создания, щелкните правой кнопкой мыши и выберите «Создать».
Intellij idea авто конструктор
2. Во всплывающем окне выбирается расположение папки хранения класса сущности.
Intellij idea авто конструктор

Четыре, настраиваемый файл сценария

Создание команд класса сущности Generate POJOs.groovy Скрипт выполняется.

Почему вы хотите настроить файл сценария?

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

4. После сохранения файла снова откройте просмотр базы данных и выберите вновь созданный Generate MyPOJOs.groovy Файл сценария для создания классов сущностей.
Intellij idea авто конструктор
5. Импортируйте в pom.xml lombok полагаться.

Источник

Вся мощь IntelliJ IDEA на примере одного языка (в картинках)

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

Однако, одна из проблем такого подхода заключается в том, что это значительно удорожает и замедляет сам процесс разработки. Что если всего этого нет? Тогда на помощь приходит IDE, благодаря которой можно изучить текущую логику по “голому” коду.

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

Так как сама платформа разработана на Java, то у нас были две основные опции: Eclipse или IDEA. Мы остановились на последнем варианте и не прогадали. Когда мы принимали решение, IDEA еще была недостаточно популярна, но с тех пор, они вырвались в лидеры на рынке, а Eclipse тихонько отстает.

На разработку самого плагина ушло не очень много времени, так как удалось во многом задействовать код, используемый непосредственно при выполнении платформы. Таким образом, мы минимальными усилиями получили очень мощную IDE, во многих аспектах значительно превосходящую по функционалу IDE многих других ERP-платформ (как родных, так и построенных на Eclipse).

Роль IDE в разработке тяжело переоценить. Несмотря на то, что многие разработчики до сих пор используют vim и считают, что так и надо. Эта позиция имеет право на жизнь, если один человек разрабатывает и в дальнейшем поддерживает этот код. Однако, в более крупных проектах, где участвует большое количество людей очень важна их взаимозаменяемость. Сотрудники болеют, уходят в отпуск, увольняются в конце концов. Кроме того, нагрузка по разным проектам неравномерна, и иногда требуется на один из них подключить большее количество людей, чтобы уложиться в короткие сроки. В такие моменты к доработкам приходится подключать новых людей, которым нужно быстро разобраться в том, как в текущий момент работает программа, и внести необходимые изменения. И тут на первый план выходит IDE.

В первую очередь от IDE нам требовалось следующее:

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

Поддержка синтаксиса

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

Intellij idea авто конструктор

Навигация

Возьмем логику из примера Управление материальными потоками. Предположим, нам нужно посмотреть, где объявляется свойство Цена. Для этого нужно под пользователем с правами администратора навести указатель мыши на заголовок нужной нам колонки:

Intellij idea авто конструктор

В появившемся окне сразу видно, в каком модуле это свойство создано (Shipment), какой номер строки в нем (37), таблица в которой хранится (_auto_Shipment_ShipmentDetail), и ряд другой информации.

Чтобы перейти непосредственно к объявлению свойства, нужно начать поиск файла и в появившемся диалоге ввести Shipment:

Intellij idea авто конструктор

Intellij idea авто конструктор

Затем при помощи Navigate — Line/Column переходим к 37й строке, где видим объявление свойства:

Intellij idea авто конструктор

Нажав CTRL+ALT+F7, стоя курсором на нужном свойстве, можно быстро найти все его использования по всем проектам:

Intellij idea авто конструктор

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

При необходимости можно включить поиск только по записи в данное свойство, если убрать соответствующую опцию:

Intellij idea авто конструктор

Тогда в списке останется только запись в это свойство. Чтобы узнать, какое конкретно значение в него записывается нужно встать курсором на salePrice и нажать Go To Declaration or Usages. Дальше вернутся через Navigation — Back и перейти к объявлению свойства item:

Intellij idea авто конструктор

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

Рефакторинг

Часто бывает ситуации, когда требуется изменить название свойства, класса, формы или любого другого элемента в системе. Для осуществления такого действия нужно стать на этот элемент и нажать Refactor — Rename:

Intellij idea авто конструктор

Переименование элемента автоматически изменяет исходный код во всех местах его использования. Кроме того, если создан файл migration.script, туда будут добавлены соответствующие записи. Серверу необходимо знать изменения имен, чтобы, например, автоматически мигрировать данные из одной колонки в другую. Иначе, невозможно отличить переименование от создания нового свойства с другим именем.

Анализ

Перед тем как выполнить рефакторинг, часто бывает необходимо выяснить «что происходит» и «кто все эти люди».

Для этого IDEA, практически из коробки, позволяет просмотреть структуру выбранного класса (доступные для этого класса свойства и действия):

Intellij idea авто конструктор

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

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

Визуализация форм

В lsFusion структура и дизайн форм задается в том же коде, что и доменная логика, при помощи специальных конструкций. При этом разные части формы могут быть объявлены в разных модулях, а при запуске сервера будут “сливаться” воедино в зависимости от подключенных модулей.

Чтобы видеть результирующий дизайн можно, конечно, перезапускать сервер, и смотреть результат в клиенте. Но на рестарт сервера требуется определенное время. Плагин же умеет:

Intellij idea авто конструктор

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

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

Метапрограммирование

Иногда возникает потребность создавать однотипный код для различных задач. В lsFusion есть механизм метакодов, который позволяет генерировать код на основе некоторого шаблона. При этом, в случае изменения метакода, будет происходить автоматическая обновление кода. По сути, это автоматический copy/paste с возможностью замены определенных идентификаторов на заданные значения.

Для включения этого механизма нужно сначала активировать его в меню. После этого IDE будет сама автоматически изменять соответствующий код.

Intellij idea авто конструктор

При запуске сервера будет использоваться только сгенерированный код. Сами шаблоны META при запуске сервера учитываться не будут.

Кстати, реализация возможности метапрограммирования заставила нас внести еще один вклад в open-source (в данном случае в лице Intellij IDEA). Дело в том, что в ERP метакоды используются достаточно активно, и, соответственно, часто возникает необходимость сгенерировать код / удалить сгенерированный код. Это приводит к большому количеству асинхронных изменений файлов, что, в свою очередь, приводило к весьма своеобразному багу. Проблема в том, что в самом JetBrains его не могли воспроизвести, поэтому все свелось к тому, что нам самим пришлось написать неработающий юнит-тест. Это конечно заняло несколько дней, зато косвенно помогло нам при реализации следующих двух возможностей.

Отладчик

Когда по коду совершенно непонятно что происходит, то приходится обращаться к отладчику. На любой строке императивной логики (действия, события, ограничения) можно поставить breakpoint. Как только выполнение сервера достигнет этой точки, оно будет остановлено и управление перейдет в отладчик. В этот момент можно смотреть watches, а также продолжать выполнение построчно. Слева будет показан stack trace, по которому можно перемещаться как при отладке обычного Java приложения.

Intellij idea авто конструктор

При просмотре текущих значений можно обращаться как текущим объектам (например, Shipment s), так и к любым другим объектам из базы (например, Item i). Однако, разработчик сам несет ответственность за добавление в watches данных, считывание которых займет много времени или памяти, и приведет к падению производительности.

Также можно ставить breakpoint’ы на конкретное свойство. Выполнение остановится в любом месте, когда в него будет производится запись:

Intellij idea авто конструктор

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

Для реализации отладчика мы на самом деле использовали существующий в IDEA Java Debugger. То есть отлаживается платформа как обычное Java приложение, но для lsFusion действий мы создаем proxy java методы и подменяем их отображение на свой код (я так понимаю в IDEA это сделано для поддержки Scala и других оберток над Java). И вот тут был забавный момент. В какой-то момент разработчики IDEA сделали конструктор своего Java Debugger закрытым (private). И если ситуацию с вызовом private методов еще можно обойти через Reflection, то как унаследоваться от класса с private конструктором — непонятно. Но как раз в то время шли разборки с багом из верхнего раздела, и мы «по бартеру» решили попросить людей из JetBrains сделать этот конструктор обратно protected, на что они отреагировали очень оперативно (за что им конечно большое спасибо).

Language Injection

Одна из самых необычных возможностей IDEA — возможность обеспечивать поддержку своего языка в строковых константах других языков. Для этого достаточно сказать IDEA, какие именно строковые константы относятся к твоему языку, дальше IDEA сама автоматически:

Здесь в IDEA тоже был (и сохраняется) небольшой баг. Когда виртуальный файл большой, то если при переходе к использованию IDEA должна перейти на начало «окна внедрения», она на самом деле переходит на конец предыдущего «окна внедрения» (то есть например на предыдущее использование свойства в Java-файле). Существует конечно, простой обход этого бага — создавать по отдельному виртуальному файлу на каждый строковый литерал. Но такой подход тормозит когда использований больше 30, поэтому в этом случае все равно приходится использовать один большой виртуальный файл (с другой стороны, когда использований много, найти правильное, то есть следующее, использование не так уж и сложно). Мы просили исправить этот баг опять-таки в рамках «обмена услугами», и разработчики JetBrains его вроде как пофиксили, но, как позже выяснилось, как-то не так (это еще по коммиту было видно, но мы подумали, что просто не до конца его поняли). Впрочем, у нас к этому багу все уже давно привыкли, благо ситуация с использованием больше 30 элементов в одном файле встречается достаточно редко.

Заключение

В статье описаны только основные варианты использования. В ней также присутствуют возможности по поиску реализаций абстрактных свойств и классов, визуализации зависимостей между модулями и свойствами, автоматической генерации форм на основе xml/json и многое другое. И, конечно же, есть встроенная интеграция с основными системами контроля версий Git и Subversion, а также поддержка Maven и Ant.

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

Источник

Как начать пользоваться Swing GUI-визардом IntelliJ IDEA. Подробная инструкция

Давно не писал настольных приложений на Java вообще и с использовании Swing в частности. Однако, возникла необходимость немного по GUIть. В качестве инструмента выбрал IntelliJ IDEA Community edition, 2016.1 версии.

Взялся ваять и, естественно, первое, на что налетел — хотя со времён Borland Java Builder 2006 воды утекло немало, экранные интерфейсы создавать проще не стало, скорее наоборот. А одной из причин выбора IDEA было как раз наличие Swing дизайнера «из коробки», однако как им пользоваться с ходу решительно непонятно — форма генерится, класс создаётся, создаются переменные контролов из дизайнера… но и только: при создании нашего класса форма на экране не появляется

Пошарил интернет, информации приблизительно ноль. Народ говорит, мол, «создавай и — вперёд!». Хм…

По результатам небольших мытарств на эту тему решил опубликовать инструкцию, так как мне с учётом былого опыта было искать намного легче, чем новичку, который вообще в первый раз ваяет форму на Swing.

Создание Swing GUI форм средствами JetBrains IntelliJ IDEA 2016.1

Intellij idea авто конструктор

Intellij idea авто конструктор

В итоге нам действительно сгенерили класс-наследник JDialog (который можно создать и использовать) и форма к нему.
Запускаем наш проект на выполнение и… о ужасчудо! при компиляции IDEA добавляет в конец нашего файла некоторый дополнительный код.

Теперь, когда мы поняли, как оно работает, перейдём к созданию прочих форм — необязательно диалогов.

Генерится класс и форма к нему. Накидываем на форму несколько контролов. В GUI дизайнере смотрим имя корневого элемента (обычно panel1, если IDEA не задала имя, а такое бывает, задайте принудительно — я для наглядности назвал rootPanel).

Intellij idea авто конструктор

Переходим к исходному коду нашего класса.

Итак:
1. Добавляем для нашего класса наследование «extends JFrame»;
2. Добавляем конструктор класса со строками:

Всё. Форма готова к употреблению. Остальное смотрите в многочисленных инструкциях по Swing.

P.S. Как вариант, можно не наследовать наш класс от JFrame, а создать конструктор вида:

Такой вариант тоже работает — возможно, кому-то пригодится.

Источник

Compile and build applications with IntelliJ IDEA

The IntelliJ IDEA compilation and building process compiles source files and brings together external libraries, properties files, and configurations to produce a living application. IntelliJ IDEA uses a compiler that works according to the Java specification.

You can compile a single file, use the incremental build for a module or a project, and rebuild a project from scratch.

If you have a pure Java or a Kotlin project we recommend that you use IntelliJ IDEA to build your project since IntelliJ IDEA supports the incremental build which significantly speeds up the building process.

However, IntelliJ IDEA native builder might not correctly build the Gradle or Maven project if its build script file uses custom plugins or tasks. In this case, the build delegation to Gradle or Maven can help you build your project correctly.

Compile a single file or class

Open the needed file in the editor and from the main menu, select Build | Recompile ‘class name’ ( Ctrl+Shift+F9 ).

If errors occur during the compilation process, IntelliJ IDEA will display them in the Review compilation and build output along with warning messages.

Change the compilation output locations

Intellij idea авто конструктор

Inside the output directory, IntelliJ IDEA also creates subdirectories for each of your modules.

The default paths for subdirectories are as follows:

At the project level, you can change the

/out part of the output path. If you do so (say, specify some instead of

At the module level, you can specify any desirable compilation output location for the module sources and tests individually.

Specify compilation output folders

Open the Project Structure dialog ( File | Project Structure Ctrl+Alt+Shift+S ).

Intellij idea авто конструктор

Intellij idea авто конструктор

Build

When you change any class inside the build target and then execute the build action, IntelliJ IDEA performs the incremental build that compiles only the changed classes. IntelliJ IDEA also recursively builds the classes’ dependencies.

Build a module, or a project

Select a module or a project you want to compile and from the main menu, select Build | Build Project ( Ctrl+F9 ).

IntelliJ IDEA displays the compilation results in the Review compilation and build output.

If you add a module dependency to your primary module and build the module, IntelliJ IDEA builds the dependent module as well and displays it in the output directory alongside the primary one. If the dependent module has its own module dependencies, then IntelliJ IDEA compiles all of them recursively starting with the least dependent module.

Intellij idea авто конструктор

The way the module dependencies are ordered may be very important for the compilation to succeed. If any two JAR files contain classes with the same name, the IntelliJ IDEA compiler will use the classes from the first JAR file it locates in the classpath.

For more information, see Module dependencies.

Rebuild

When you execute a rebuild command, IntelliJ IDEA cleans out the entire output directory, deletes the build caches and builds a project, or a module from scratch. It might be helpful, when the classpath entries have changed. For example, SDKs or libraries that the project uses are added, removed or altered.

Rebuild a module, or a project

From the main menu, select Build | Rebuild Project for the entire project or Build | Rebuild ‘module name’ for the module rebuild.

IntelliJ IDEA displays the build results in the Review compilation and build output.

When the Rebuild Project action is delegated to Gradle or Maven, IntelliJ IDEA doesn’t include the clean task/goal when rebuilding a project. If you need, you can execute the clean command before the rebuild using the Execute Before Rebuild option in the Gradle or Maven tool window.

Background compilation (auto-build)

You can configure IntelliJ IDEA to build your project automatically, every time you make changes to it. The results of the background compilation are displayed in the Problems tool window.

Configure the background compilation

Now when you make changes in the class files, IntelliJ IDEA automatically performs the incremental build of the project.

The automatic build also gets triggered when you save the file ( Ctrl+S ) or when you have the Save files automatically if application is idle for N sec. option selected in the System settings dialog.

Enabling the Build project automatically option also enables Build project in Settings/Preferences | Tools | Actions on Save

When you have the Power Save Mode option ( File | Power Save Mode ) enabled in your project, the auto-build action is disabled, and you need to manually run the build ( Ctrl+F9 ).

Compile before running

By default, when you run an application, IntelliJ IDEA compiles the module where the classes you are trying to run are located.

If you want to change that behavior, you can do so in the Run/Debug Configurations dialog.

Configure a run/debug configuration

In the dialog that opens, create a new or open an existing run configuration.

Click the Modify options link.

Intellij idea авто конструктор

If you need to add a new configuration action, click Intellij idea авто конструкторand from the list that opens, select the desired option.

For example, if you select Build Project then IntelliJ IDEA will build the whole project before the run. In this case, the dependencies that for some reason were not included in the build with the Build action, will be accounted for. If you select the Build, no error check option, IntelliJ IDEA will run the application even if there are errors in the compilation results.

Intellij idea авто конструктор

Review compilation and build output

IntelliJ IDEA reports compilation and building results in the Build tool window, which displays messages about errors and warnings as well as successful steps of compilation.

Intellij idea авто конструктор

If you configured an auto-build, then IntelliJ IDEA uses the Problems tool window for messages. The window is available even if the build was executed successfully. To open it, click Auto-build on the status bar.

Intellij idea авто конструктор

Package an application into a JAR

Create an artifact configuration for the JAR

IntelliJ IDEA creates the artifact configuration and shows its settings in the right-hand part of the Project Structure dialog.

Apply the changes and close the dialog.

Intellij idea авто конструктор

Build the JAR artifact

Intellij idea авто конструктор

Run a packaged JAR

To run a Java application packaged in a JAR, IntelliJ IDEA allows you to create a dedicated run configuration.

If you have a Gradle project, use Gradle to create and run the JAR file.

For Maven projects, you can use IntelliJ IDEA to run the JAR file. If you have a Spring Boot Maven project, refer to the Spring section.

Create a run configuration

Add a name for the new configuration.

Intellij idea авто конструктор

Doing this means that the JAR is built automatically every time you execute the run configuration.

Intellij idea авто конструктор

Run configurations allow you to define how you want to run your application, with which arguments and options. You can have multiple run configurations for the same application, each with its own settings.

Execute the run configuration

As before, the Run tool window opens and shows you the application output.

Intellij idea авто конструктор

If the process has exited successfully, then the application is packaged correctly.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *