Files
quarkus-reflection-plugin/README.md
T

78 lines
2.4 KiB
Markdown

# Quarkus Reflection Import Plugin
Maven-Plugin, das Java-Imports in deinem Projekt scannt und passende Eintraege in `reflection-config.json` schreibt.
## Ziel
Das Plugin durchsucht Java-Dateien nach `import`-Statements. Wenn ein Import mit einem in der POM konfigurierten Paketpraefix matcht, wird der importierte Typ zur Reflection-Konfiguration hinzugefuegt.
## Build
```bash
mvn clean install
```
## Verwendung im Quarkus-Projekt
```xml
<build>
<plugins>
<plugin>
<groupId>de.rsitservice</groupId>
<artifactId>quarkus-reflection-import-plugin</artifactId>
<version>1.0.0-SNAPSHOT</version>
<executions>
<execution>
<id>generate-reflection-config</id>
<goals>
<goal>generate-reflection-config</goal>
</goals>
</execution>
</executions>
<configuration>
<importPackages>
<importPackage>com.example.dto</importPackage>
<importPackage>org.acme.model</importPackage>
</importPackages>
<!-- Optional: eigener Output -->
<!-- <reflectionConfigFile>${project.build.outputDirectory}/META-INF/native-image/${project.groupId}/${project.artifactId}/reflection-config.json</reflectionConfigFile> -->
<!-- Optional: zusätzliche Merge-Quellen -->
<!--
<additionalReflectionConfigInputs>
<additionalReflectionConfigInput>${project.basedir}/src/main/resources/META-INF/native-image/reflection-config.json</additionalReflectionConfigInput>
</additionalReflectionConfigInputs>
-->
</configuration>
</plugin>
</plugins>
</build>
```
## Standardverhalten
- Scan-Roots: `${project.compileSourceRoots}`
- Import-Filter: konfiguriert über `<importPackages>`
- Ignoriert `static import`
- Ziel-Datei: `target/classes/META-INF/native-image/<groupId>/<artifactId>/reflection-config.json`
- Vorhandene Konfigurationsdateien werden gemerged (wenn vorhanden):
- Ziel-Datei selbst
- `src/main/resources/META-INF/native-image/<groupId>/<artifactId>/reflection-config.json`
- `src/main/resources/META-INF/native-image/reflection-config.json`
## Wichtige Parameter
- `importPackages` (required)
- `sourceDirectories` (optional)
- `reflectionConfigFile` (optional)
- `additionalReflectionConfigInputs` (optional)
- `allDeclaredConstructors` (default: `true`)
- `allDeclaredMethods` (default: `true`)
- `allDeclaredFields` (default: `true`)
- `skip` (default: `false`)
## Lizenz
MIT, siehe `LICENSE`.