При построении проекта из родительского / корневого каталога файл 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.

0 ответов

Другие вопросы по тегам