maven - 如何禁用 Maven 3 中的默认生命周期阶段?

标签 maven maven-3

通过禁用我的意思是完全,完全从生命周期中删除阶段,因此它甚至不会被调用。
我可能需要一个自定义生命周期,但我找不到直接在我的 pom.xml 中定义它的简单方法。 .看来我需要编写一个插件来列出我想要的阶段。
例如,我想要 default-testResources , default-testCompiledefault-test阶段永远不会发生,并将我的构建日志从此:

[INFO] ------------------------------------------------------------------------
[INFO] Building HelpDesk Webapp 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ helpdesk ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory d:\proj\HelpDesk\repo\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.0:compile (default-compile) @ helpdesk ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ helpdesk ---
[INFO] Not copying test resources
[INFO]
[INFO] --- maven-compiler-plugin:3.0:testCompile (default-testCompile) @ helpdesk ---
[INFO] Not compiling test sources
[INFO]
[INFO] --- maven-surefire-plugin:2.10:test (default-test) @ helpdesk ---
[INFO] Tests are skipped.
[INFO]
[INFO] --- maven-war-plugin:2.3:war (default-war) @ helpdesk ---
[INFO] Packaging webapp
[INFO] Assembling webapp [helpdesk] in [d:\proj\HelpDesk\repo\target\helpdesk]
[INFO] Processing war project
[INFO] Copying webapp resources [d:\proj\HelpDesk\repo\src\main\webapp]
[INFO] Webapp assembled in [40 msecs]
[INFO] Building war: d:\proj\HelpDesk\repo\target\helpdesk.war
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
进入这个:
[INFO] ------------------------------------------------------------------------
[INFO] Building HelpDesk Webapp 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ helpdesk ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory d:\proj\HelpDesk\repo\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.0:compile (default-compile) @ helpdesk ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-war-plugin:2.3:war (default-war) @ helpdesk ---
[INFO] Packaging webapp
[INFO] Assembling webapp [helpdesk] in [d:\proj\HelpDesk\repo\target\helpdesk]
[INFO] Processing war project
[INFO] Copying webapp resources [d:\proj\HelpDesk\repo\src\main\webapp]
[INFO] Webapp assembled in [40 msecs]
[INFO] Building war: d:\proj\HelpDesk\repo\target\helpdesk.war
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------

最佳答案

如果您想继续使用预定义的包装(jar、war 等),您不能完全删除它们。您可以将包装保留为 pom并通过将您想要的目标绑定(bind)到所需阶段来定义您自己的生命周期,或者您可以完全定义自己的生命周期。您还可以将默认目标绑定(bind)到阶段 none以防止目标执行任何实际工作,如图所示。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <executions>
        <execution>
            <id>default-testResources</id>
            <phase>none</phase>
        </execution>
    </executions>
</plugin>

所有这一切 - khmarbaise 的问题是一个很好的问题。通常,更改现有的预构建生命周期并不是最佳实践。

关于maven - 如何禁用 Maven 3 中的默认生命周期阶段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15249345/

相关文章:

maven - 无法使用 karma、jasmine、phantomjs 和 maven 加载 angular.js 进行单元测试

linux - 使用安装在 Linux 机器上的 Jenkins 在 IE 驱动程序上运行测试

maven - 2 POM 中定义的 exec-maven-plugin - 不工作

java - 如何使 jetty 服务器从局域网访问?

maven - 我可以将快照的时间戳更改为内部版本号吗?

maven - java.lang.NoClassDefFoundError : org/springframework/beans/factory/Aware

android - 我可以将 Android 数据绑定(bind)与 Maven 一起使用吗?

java - spring boot 中依赖注入(inject)失败,基于 maven 的多模块项目

maven - 如何在项目中生成jar和war

hsqldb - 通过maven exec插件启动hsqldb服务器失败