【发布时间】:2012-10-10 12:50:28
【问题描述】:
到目前为止,我使用命令mvn clean compile hibernate3:hbm2java 来启动我的程序。有没有办法将这三个目标结合在一个目标中,例如mvn run 或 mvn myapp:run?
【问题讨论】:
到目前为止,我使用命令mvn clean compile hibernate3:hbm2java 来启动我的程序。有没有办法将这三个目标结合在一个目标中,例如mvn run 或 mvn myapp:run?
【问题讨论】:
与我的其他答案完全不同的另一个解决方案是使用 exec-maven-plugin 和目标 exec:exec。
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<executable>mvn</executable>
<arguments>
<argument>clean</argument>
<argument>compile</argument>
<argument>hibernate3:hbm2java</argument>
</arguments>
</configuration>
</plugin>
</plugins>
</build>
然后你就这样运行它:
mvn exec:exec
通过这种方式,您不会更改任何其他插件,也不会绑定到任何阶段。
【讨论】:
根据Hibernate3 Maven Plugin 站点,hbm2java 目标默认绑定到generate-sources 阶段。
通常您不必清理项目,您可以运行增量构建。
无论如何,如果您将maven-clean-plugin 和hibernate3-maven-plugin 添加到您的pom.xml 中,您将在一个命令中完成所有操作。
<build>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>auto-clean</id>
<phase>initialize</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<id>hbm2java</id>
<goals>
<goal>hbm2java</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
如果您希望hibernate3-maven-plugin 在compile 之后运行,那么只需将目标设置为compile,因为它将始终在默认阶段之后运行。
因此,只需运行一个命令即可运行所有目标:
mvn compile
如果您出于任何原因不想清理,只需键入:
mvn compile -Dclean.skip
【讨论】:
hbm2java,那么将那个(可能还有clean)插件放在profile中,即mvn compile -Phbm
您还可以为 Maven 构建定义一个默认目标。 然后你的命令行调用将如下所示
mvn
定义默认目标
将以下行添加到您的 pom.xml:
<build>
<defaultGoal>clean compile hibernate3:hbm2java</defaultGoal>
</build>
【讨论】:
mvn -Prun 运行程序。