78 lines
2.4 KiB
Markdown
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`.
|