Как указать правило зависимости в Maven между файлами с определенными суффиксами?
-
18-09-2019 - |
Вопрос
У меня есть программа Java, которая генерирует классы Java для моего приложения.В основном он учитывает простую спецификацию для класса и генерирует специализированную форму бобов Java.Я хочу интегрировать это в свой Maven pom.xml, чтобы, если входной файл изменяется, Maven автоматически генерирует новый файл .java до фазы компиляции Maven.
Я знаю, как сделать это тривиально в Make, но я ничего не нашел в Maven Doc с этой функциональностью.
Решение
Вы не предоставили подробностей о процессе генерации кода, но, возможно, вы могли бы просто вызвать генератор кода с помощью exec-maven-плагин (см. Примеры раздел).Соглашение заключается в создании источников в ${project.build.directory}/generated-sources/<tool>
.Затем добавьте сгенерированные источники с помощью build-helper-plugin И его add-sources
моджо.Свяжите каждую вещь на generate-sources
фаза.
Ниже я просто покажу материал build-helper:
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>add-mytool-sources</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${project.build.directory}/generated-sources/mytool</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Вы также можете написать простой плагин для обертывания вашего генератора.В таком случае обратите внимание на Руководство по генерации источников.
ПС:Возможно я что-то упустил, между моим ответом и названием вашего вопроса какое-то несоответствие.
Другие советы
У Maven есть фаза "генерировать-источники" для этого