Introduces GEMINI.md to provide a comprehensive overview of the ActionModelsGenerator project, including its purpose, core technologies, build instructions, and development conventions. This document serves as essential context for future interactions and development.
2.4 KiB
ActionModelsGenerator
Project Overview
The ActionModelsGenerator is an IntelliJ Platform Plugin designed to automate the generation of Java ActionBean and Data Transfer Object (DTO) classes from a database schema. This plugin integrates directly into the IntelliJ IDE, allowing developers to select a database table and generate corresponding Java classes based on predefined FreeMarker templates.
Key Features:
- Database Schema Introspection: Utilizes IntelliJ's database tools to read table and column metadata.
- Code Generation: Generates
ActionBeanand DTO classes using FreeMarker templates. - Template-driven: Customizable code generation via FreeMarker templates (
actionBean.ftl,actionBean.extend.ftl,actionDTO.ftl,actionDTO.extend.ftl). - IDE Integration: Provides a context menu action ("Generate Action Models") in the Database View for easy access.
Core Technologies:
- Java: Primary development language.
- Kotlin: Configured in
build.gradle.kts, indicating potential for Kotlin usage. - Gradle (Kotlin DSL): Build automation system.
- IntelliJ Platform SDK: For IDE integration and database interaction.
- FreeMarker: Templating engine for code generation.
Building and Running
This project is an IntelliJ Platform Plugin built with Gradle.
Build the Plugin: To build the plugin, use the following Gradle command:
./gradlew build
This will produce a .zip plugin artifact in the build/distributions directory.
Run the Plugin in a Development IDE: To run a new IntelliJ IDE instance with this plugin installed for development and testing:
./gradlew runIde
Alternatively, you can use the "Run IDE with Plugin" run configuration provided in the .run directory within IntelliJ IDEA.
Development Conventions
- Language: Primarily Java, with Kotlin support configured.
- Build System: Gradle with Kotlin DSL (
.gradle.ktsfiles). - Code Generation: FreeMarker templates are located in
src/main/resources/templates/. Modifications to these templates will change the generated code structure. - IntelliJ Platform APIs: Development involves using IntelliJ Platform SDK for UI actions, virtual file system operations, and database schema access.
- Action Definition: New actions are defined in
src/main/resources/META-INF/plugin.xml.