При построении проекта из родительского / корневого каталога файл reflections.xml генерируется неправильно
Я использую проект отражений для анализа своего приложения и библиотек во время компиляции, чтобы быстро выполнять поиск во время выполнения. Когда я собираю проект в каталоге проекта, генерируемый файл reflections.xml - это то, чего я ожидаю; однако когда я строю проект из корня, он отличается. Это моя конфигурация:
<build>
<plugins>
<!-- When this plugin is installed at the parent pom level, it messes up the classes -->
<plugin>
<groupId>org.codehaus.gmavenplus</groupId>
<artifactId>gmavenplus-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<!--<phase>generate-resources</phase>-->
<!--<phase>prepare-package</phase>--><!-- works fine, but the current project fails to generate any reflections as a result when unit testing-->
<phase>process-classes</phase>
<goals>
<goal>execute</goal>
</goals>
</execution>
</executions>
<configuration>
<scripts>
<script><![CDATA[
new org.reflections.Reflections(
"com.walterjwhite",
org.reflections.scanners.TypeAnnotationsScanner.class,
org.reflections.scanners.SubTypesScanner.class,
org.reflections.scanners.FieldAnnotationsScanner.class
)
.save("${project.build.outputDirectory}/META-INF/reflections/${project.groupId}-${project.artifactId}-reflections.xml")
]]></script>
</scripts>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<!-- any version of Groovy \>= 1.5.0 should work here -->
<version>2.4.12</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.9.11</version>
</dependency>
<!-- When writing XML, this is required -->
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
</dependencies>
</plugin>
Это проект @ / modules / веб-сервис / образец. Если я собираю это @ /, это неправильно, если я собираю это @ / modules / web-service / sample (каталог, в котором находится проект pom.xml), то это правильно.
Похоже, что текущий рабочий каталог не установлен должным образом, что заставляет утилиту Reflection искать все классы на корневом уровне, а это не то, что мне нужно: https://github.com/ronmamo/reflections/blob/master/src/main/java/org/reflections/Reflections.java
Мне интересно, если мне нужно установить текущий рабочий каталог в gmavenplugin или это проблема maven.