首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在运行单个插件时,让maven先运行一个任务

在运行单个插件时,让maven先运行一个任务
EN

Stack Overflow用户
提问于 2015-07-16 21:47:53
回答 3查看 1K关注 0票数 0

我已经建立了一个项目,使用Maven Cargo插件启动Tomcat,其中部署了我的set应用程序,以及一些需要支持的其他set应用程序。这很好用。不幸的是,当我运行"mvn cargo: run“时,它并不是首先进行构建,而是在我最后一次进行构建时实际启动Tomcat运行代码。

之前我使用的是tomcat7插件,这确实是先进行构建,并且总是运行源代码的当前版本。因此,我可以更改代码并运行"mvn tomcat7: run“,并且知道代码更改已经构建并正在运行。

我找不到任何使用Cargo插件的方法来让它做到这一点,但是Maven有什么方法可以让它在我运行特定插件时至少运行包阶段,这样它就可以首先正确地构建WAR文件了吗?

EN

回答 3

Stack Overflow用户

发布于 2015-07-16 22:02:48

Tomcat插件在执行自己之前会自动调用compile阶段。Cargo插件不会做到这一点。为了在执行插件之前编译代码,您需要运行

代码语言:javascript
复制
mvn clean compile cargo:run

如果您希望在集成测试之前和之后自动启动和停止容器,您还可以将cargo:startcargo:stop绑定到Maven的生命周期阶段。详情请参见Automatically executing and stopping the container when running mvn install

票数 1
EN

Stack Overflow用户

发布于 2015-07-16 22:10:53

下面是一个完整的示例,如何在通常的构建中集成start via Cargo。https://github.com/khmarbaise/maui/tree/master/src/main/resources/it-example-container。您可以通过mvn -Prun-its clean verify启动集成测试,这可能更好

票数 0
EN

Stack Overflow用户

发布于 2015-07-23 01:58:58

一种完全不同的方法是使用exec-maven-plugin通过一个命令执行多个目标:

代码语言:javascript
复制
<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.4.0</version>
            <configuration>
                <executable>mvn</executable>
                <arguments>
                    <argument>clean</argument>
                    <argument>compile</argument>
                    <argument>cargo:run</argument>
                </arguments>
            </configuration>
        </plugin>
        <!-- more plugins... -->
    </plugins>
</build>

这样,您只需调用

代码语言:javascript
复制
mvn exec:exec

要清理、编译和运行应用程序,请执行以下操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31456104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档