Add initial implementation of Quarkus Reflection Import Plugin
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
# 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`)
|
||||
Reference in New Issue
Block a user