【发布时间】:2013-02-21 08:41:07
【问题描述】:
禁用我的意思是完全,完全从生命周期中删除阶段,因此它甚至不会被调用。
我可能需要自定义生命周期,但我找不到直接在 pom.xml 中定义它的简单方法。看来我需要编写一个插件来列出我想要的阶段。
例如,我希望 default-testResources、default-testCompile 和 default-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] ------------------------------------------------------------------------
【问题讨论】:
-
问题是你为什么需要这样改变生命周期的目的是什么?
-
@khmarbaise 有点学术兴趣。我不喜欢 Maven 调用我知道没有工作可做的阶段和插件,消耗计算资源并添加无用的日志条目的想法。我知道单元测试被 Maven 认为是好的实践,但我仍然想知道我是否可以禁用它们。到目前为止,我发现的最佳方法是
maven.test.skip变量,它将日志最小化为我发布的内容。这个问题源于我期望灵活调整 Maven 以适应我的项目、我的布局和我的构建阶段。我意识到它对性能的影响很小,甚至不明显。 -
@khmarbaise 为什么我不能
maven.package.skip?我有配置文件,激活后会禁用我的验证插件。但这对我来说很危险,我想禁止 JAR/shade/source/etc 插件创建包,因为它们是不完整的。基本上我想停止构建 -
虽然我不确定每个生命周期阶段,但可以在默认生命周期中使用 `` -Dmaven.skip.test=true 跳过 test 生命周期阶段``` 在这里查看更多:stackoverflow.com/questions/5784778/….