e7737b791e71b317d32d36a3038635680be45073
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
mvn clean install
Verwendung im Quarkus-Projekt
<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.jsonsrc/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.
Languages
Java
100%