docs: Add README.md based on GEMINI.md content
This commit is contained in:
44
README.md
Normal file
44
README.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# 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 `ActionBean` and 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:
|
||||
```bash
|
||||
./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:
|
||||
```bash
|
||||
./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.kts` files).
|
||||
* **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`.
|
||||
Reference in New Issue
Block a user