Advanced Maven Plugin Usage
If you need to process more than one directory of classes, you can specify multiple fileSets
like this:
<build>
<plugins>
<plugin>
<groupId>io.smallrye</groupId>
<artifactId>jandex-maven-plugin</artifactId>
<version>${version.jandex}</version>
<executions>
<execution>
<id>make-index</id>
<goals>
<goal>jandex</goal>
</goals>
<configuration>
<fileSets>
<fileSet>
<directory>${project.build.directory}/generated-classes/foo</directory>
</fileSet>
<fileSet>
<directory>${project.build.directory}/generated-classes/bar</directory>
</fileSet>
</fileSets>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
To turn off processing of target/classes
, add the following configuration:
<processDefaultFileSet>false</processDefaultFileSet>
For any fileSet
, you can also fine-tune the classes that are processed using the following options:
<fileSet>
<directory>${project.build.directory}/somedir</directory>
<!-- included globs -->
<includes>
<include>**/indexed/*.class</include>
<include>**/idxd/*.class</include>
</includes>
<!-- excluded globs -->
<excludes>
<exclude>**/*NotIndexed.class</exclude>
</excludes>
<!-- normally true, this excludes things like the CVS/ and .svn/ directories, log files, etc. -->
<useDefaultExcludes>false</useDefaultExcludes>
</fileSet>
A fileSet
may specify a dependency instead of a directory.
That dependency must exist among the set of dependencies of the Maven project being built.
A groupId
and artifactId
are mandatory, a classifier
is optional:
<fileSet>
<dependency>
<groupId>com.example</groupId>
<artifactId>my-project</artifactId>
</dependency>
<includes>
<include>com/example/my/project/api/**/*.class</include>
</includes>
<excludes>
<exclude>com/example/**/_private/*.class</exclude>
</excludes>
</fileSet>