Spring REST Docs maven непрерывная сборка?

Я просматривал это руководство https://www.youtube.com/watch?v=k5ncCJBarRI&t=1443s

Около 1:07:30 автор упомянул о «Gradle имеет непрерывную сборку», позже смог обнаружить изменения в тесте и автоматически восстановить asciidoc. Мне было интересно, знает ли кто-нибудь, как настроить это в maven?

Я просмотрел документы весной и плагин asciidoctor, но не смог найти ничего, связанного с этим.

Мне удалось заставить maven повторно отображать html при изменении index.adoc, изменив <goal> с process-asciidoc на auto-refresh. Однако это не наблюдает изменения в тесте.

Вопрос

Есть ли способ сказать Maven, чтобы он смотрел наши тестовые файлы и перекомпилировал их при внесении изменений?

ПОМ.XML

<plugin>
    <groupId>org.asciidoctor</groupId>
    <artifactId>asciidoctor-maven-plugin</artifactId>
    <version>1.5.7.1</version>
    <executions>
        <execution>
            <id>generate-docs</id>
            <phase>prepare-package</phase>
            <goals>
                <goal>auto-refresh</goal>
            </goals>

            <configuration>
                <sourceDocumentName>index.adoc</sourceDocumentName>
            <backend>html</backend>
            <attributes>
                <snippets>${project.build.directory}/generated-snippets</snippets>
            </attributes>
            </configuration>

        </execution>
    </executions>
</plugin>

Спасибо.


person Eric Huang    schedule 27.11.2018    source источник


Ответы (2)


Maven не имеет аналога непрерывной сборки Gradle. Если вы хотите, чтобы изменения в тестах обнаруживались и вызывали перекомпиляцию тестов и выполнение всех задач, зависящих (прямо или косвенно) от скомпилированных тестовых классов, вам придется использовать Gradle.

person Andy Wilkinson    schedule 27.11.2018
comment
Привет, не могли бы вы взглянуть на этот другой вопрос с Gradle? stackoverflow.com/ вопросы/65999796/. Спасибо большое... - person Eric Huang; 02.02.2021

Это не решение для непрерывной сборки, но оно работает аналогично. Тем не менее, этот процесс занимает некоторое время, потому что он, по сути, переупаковывает проект каждый раз, когда происходит изменение... Может быть не идеальным для некоторых случаев использования...

Я нашел плагин, который смотрит файлы. https://github.com/fizzed/maven-plugins Перейдите в каталог просмотра, где находится ваш тестовые файлы. Цель изменена с compile на package.

Наблюдатель выполнит mvnw: package при обнаружении изменения. Затем плагин asciidoctor maven повторно упакует проект.

Добавьте это в свой плагин

<plugin>
            <groupId>com.fizzed</groupId>
            <artifactId>fizzed-watcher-maven-plugin</artifactId>
            <version>1.0.6</version>
            <configuration>
                <touchFile>target/classes/watcher.txt</touchFile>
                <watches>
                    <watch>
                        <directory><directory>src/test/[your test package]</directory></directory>
                    </watch>
                </watches>
                <goals>
                    <goal>package</goal>
                    <!-- <goal>compile</goal> -->
                </goals>
                <profiles>
                    <profile>optional-profile-to-activate</profile>
                </profiles>
            </configuration>
        </plugin>
person Eric Huang    schedule 29.11.2018