How to make sure Maven plugin is executed before classes are compiled?

Kjeld :

I have created a Maven project, which contains Java domain classes that are generated from database tables, using hibernate3-maven-plugin. The same project however also contains Dao classes that make use of these generated domain classes.

When compiling the project using mvn clean compile, the build will fail because the Dao classes won't compile: the domain classes have not been compiled yet. The domain classes won't be generated because the build fails. As if running in a circle. :-)

How can I make sure, the plugin generates the domain classes, before the dao classes are compiled?

Thanks!

Ralf Wagner :

You must bind the generation of the domain classes i.e. the execution of the hibernate plugin to a Maven phase that is executed before the compile phase, e.g. generate-sources.

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

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

When you generate your sources to the target dir, the Maven compiler plugin should pick them up and compile them.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=19156&siteId=1