如果我打电话给
mvn clean installmaven知道clean是一个生命周期,而安装是默认生命周期的一个阶段
如果我打电话给
mvn deploymaven将按顺序执行默认生命周期的所有阶段。
有没有办法通过给出生命周期的名称来调用默认的生命周期(而不是执行生命周期的最后一个阶段)?
编辑:所以问题是:有没有一个命令
mvn lifecyclename开始执行默认生命周期?
发布于 2012-07-19 17:03:58
这似乎是个误会。进一步的阅读可以澄清
mvn clean不会调用整个干净的生命周期。事实上,在clean生命周期中有一个clean阶段。并且该命令将执行此阶段,而不是生命周期。
发布于 2012-07-19 17:17:38
没有根据生命周期名称运行生命周期的命令。所以你不能 do a mvn Default然后期望它运行到Default:deploy。您将不得不提到一个周期中的任务,如test、package、clean,拥有此任务的生命周期将会激活。
将生命周期作为一个参数是没有意义的。这将是令人困惑的。例如,运行mvn clean是“清理生命周期”还是“清理”任务?
或者,键入mvn clean将运行清理生命周期会更加冗长;而mvn clean:clean将运行清理生命周期直到clean任务。
Maven有三个生命周期。执行任何生命周期的任务(例如task_N)将导致执行整个生命周期,直到该任务(task_N)为止。这三个生命周期是Clean、Default和Site。
有关更多详细信息,请参阅此处Introduction to Maven Life-cycles and task order
你可以看到,当你执行的时候,比如说,mvn test,这些就是按照这个顺序执行的东西
验证>初始化>生成源>流程源>生成资源>流程资源>编译>流程类>后期流程>生成测试源>流程测试源>生成测试资源>流程测试资源>测试编译>流程测试类>测试
您不能跳过任何默认任务。你可以钩住在任务中执行的插件。
发布于 2012-07-19 16:03:36
据我所知,您不能执行孤立的生命周期阶段。
但是你可以执行一个独立的插件目标。
mvn deploy:deploy这不会触发任何与deploy阶段相关的插件执行。但是你总是可以在命令行中添加更多的插件执行。因此,我最好使用一个配置文件来跳过所有插件的执行。
如果想要执行绑定到deploy阶段myplugin:mygoal,那么
mvn myplugin:mygoal deploy:deploy但是执行的配置必须在cli中。
但是你最好跳过你不想要的插件执行。仅在命令行中跳过test和integration-test。但是您可以通过一个配置文件来实现这一点,该配置文件将默认周期的配置设置为跳过。
<profiles>
<profile>
<id>skip</id>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
...然后用召唤
mvn deploy -Pskiphttps://stackoverflow.com/questions/11556170
复制相似问题