Как убедиться, что плагин Maven выполняется перед компиляцией классов? - PullRequest
0 голосов
/ 02 марта 2020

Я создал проект Maven, который содержит Java классов доменов, которые генерируются из таблиц базы данных с использованием hibernate3-maven-plugin. Однако тот же проект также содержит классы Dao, которые используют эти сгенерированные классы домена.

При компиляции проекта с использованием mvn clean compile сборка завершится неудачно, потому что классы Dao не скомпилируются: классы домена еще не скомпилированы. Классы домена не будут сгенерированы, потому что сборка не удалась. Как будто бег по кругу. : -)

Как я могу убедиться, что плагин генерирует классы домена, прежде чем классы dao будут скомпилированы?

Спасибо!

1 Ответ

1 голос
/ 02 марта 2020

Вы должны связать генерацию классов домена, т.е. выполнение плагина hibernate, с фазой Maven, которая выполняется перед фазой компиляции, например, generate-sources.

<build>
<plugins>
  <plugin>
    <artifactId>hibernate3-maven-plugin</artifactId>
    <executions>
      <execution>
        <goals>
          <goal>(goal for generating sources)</goal>
        </goals>
        <phase>generate-sources</phase>

См. http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

Когда вы генерируете свои источники в целевой директории, плагин компилятора Maven должен подобрать их и скомпилировать.

...