Как указать правило зависимости в Maven между файлами с определенными суффиксами?

StackOverflow https://stackoverflow.com/questions/2411932

Вопрос

У меня есть программа 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 есть фаза "генерировать-источники" для этого

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top