Init Commit
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
# Reflection Config Generator
|
||||
|
||||
Ein kleines CLI-Tool, das Java-Quellcode scannt und daraus eine
|
||||
`reflection-config.json` fuer Quarkus/GraalVM erzeugt.
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- PowerShell 5.1+ oder PowerShell 7+
|
||||
- Optional: Python 3.9+ (wenn du die Python-Variante nutzen willst)
|
||||
|
||||
## Nutzung
|
||||
|
||||
### PowerShell (empfohlen)
|
||||
|
||||
```powershell
|
||||
powershell -ExecutionPolicy Bypass -File .\reflection_config_generator.ps1 `
|
||||
-SourceRoot C:\apps\service-a\src\main\java `
|
||||
-Package com.example `
|
||||
-Output C:\apps\service-a\src\main\resources\META-INF\native-image\reflection-config.json
|
||||
```
|
||||
|
||||
Erzeugt standardmaessig `reflection-config.json` im aktuellen Verzeichnis, wenn `-Output` nicht gesetzt ist.
|
||||
|
||||
### Mehrere Source-Roots und Packages
|
||||
|
||||
```powershell
|
||||
powershell -ExecutionPolicy Bypass -File .\reflection_config_generator.ps1 `
|
||||
-SourceRoot C:\apps\service-a\src\main\java, C:\apps\service-b\src\main\java `
|
||||
-Package com.company.project, org.shared.*
|
||||
```
|
||||
|
||||
### Ausgabe auf stdout
|
||||
|
||||
```powershell
|
||||
powershell -ExecutionPolicy Bypass -File .\reflection_config_generator.ps1 `
|
||||
-SourceRoot C:\apps\service-a\src\main\java `
|
||||
-Package com.example `
|
||||
-Stdout
|
||||
```
|
||||
|
||||
## Wichtige Optionen
|
||||
|
||||
- `-SourceRoot`: Quellverzeichnis, rekursiv gescannt (mehrfach/als Liste nutzbar)
|
||||
- `-Package`: Package-Praefix(e), z. B. `com.acme` oder `com.acme.*`
|
||||
- `-Output`: Zielpfad (Standard: `reflection-config.json`)
|
||||
- `-Stdout`: JSON statt Datei direkt in die Konsole
|
||||
- `-IncludeDeclared:$true/$false`: Declared-Member-Flags (Standard: true)
|
||||
- `-IncludePublic:$true/$false`: Public-Member-Flags (Standard: false)
|
||||
- `-IncludeConstructors:$true/$false`
|
||||
- `-IncludeMethods:$true/$false`
|
||||
- `-IncludeFields:$true/$false`
|
||||
- `-NoSort`: Discovery-Reihenfolge behalten
|
||||
|
||||
## Python-Variante (optional)
|
||||
|
||||
```bash
|
||||
python reflection_config_generator.py --package com.example
|
||||
```
|
||||
|
||||
## Hinweise
|
||||
|
||||
- Das Tool liest `.java`-Dateien (nicht `.class`-Dateien).
|
||||
- Es werden Top-Level-Typen (`class`, `interface`, `enum`, `record`) erfasst.
|
||||
- Dateien ohne `package`-Deklaration werden ignoriert.
|
||||
Reference in New Issue
Block a user