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.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)
S
Description
No description provided
Readme MIT
33 KiB
Languages
Java 100%