Подтвердить что ты не робот

Объедините много целей Maven в одном

До сих пор я использую команду mvn clean compile hibernate3:hbm2java для запуска моей программы. Есть ли способ объединить эти три цели в пределах одного, например. mvn run или mvn myapp:run?

4b9b3361

Ответ 1

Другим решением, которое полностью отличается от моего другого ответа, будет использование 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

Таким образом, вы не меняете ни один из других плагинов и не привязаны к каким-либо фазам.

Ответ 2

В соответствии с сайтом 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