apache / apache/maven

[MNG-4639] Be able to profile a maven build

Open
#6,078 10 comments 0 reactions 0 assignees View on GitHub
enhancement priority:major
Dominant language
Java
Stars
5.3k
Forks
3.1k
Avg merge
20h 42m
Merged PRs (30d)
297

Description

**[Baptiste MATHUS](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=mathus.b@mipih.fr)** opened **[MNG-4639](https://issues.apache.org/jira/browse/MNG-4639?redirect=false)** and commented

A common problem with builds is that they can become quite long to run. As it is a know anti-pattern for CI for example, one has the need to try and optimize their builds.

The thing is: the current granularity isn't sufficiently precise. In fact, you only only the time spent to build each module. This is a good start, though.

Maven currently displays something like the following (let's speak only about maven 3):

> [INFO] Reactor Summary:
> [INFO] ------------------------------------------------------------------------
> [INFO] p1 ........................ SUCCESS [1:12.938s]
> [INFO] p2 ........................ SUCCESS [5.750s]
> [INFO] p3 ........................ SUCCESS [3:58.488s]
> [INFO] p4 ........................ SUCCESS [24.437s]
> [INFO] p5 ........................ SUCCESS [1.563s]
> [INFO] ------------------------------------------------------------------------
> [INFO] ------------------------------------------------------------------------
> [INFO] BUILD SUCCESSFUL
> [INFO] ------------------------------------------------------------------------
> [INFO] Total time: 5 minutes 46 seconds

What would be great would be adding an option that would higher the details. Something like -A/--analyze (--profile would be too close to -P/profile option) would add detailed analysis, would print something like.

> [INFO] Reactor Summary:
> [INFO] ------------------------------------------------------------------------
> [INFO] p1 ........................ SUCCESS [1:12.938s]
> clean:clean (somepkg.CleanMojo) : 10.3s
> compiler:compile (...) : 50s
> ...
> and so on

I'm not very well aware the level of details maven 3 API could provide. So the printing above could become irrelevant. In this case, printing a dedicated html or so report might be a better choice.

Cheers
PS : Though I'm really not introduced into maven code, if you think it's not too complicated, I could try and contribute on this field if I'm given some hints or good starting points.

---

**Attachments:**
- [0001-MNG-4639-Be-able-to-profile-a-maven-build.patch](https://issues.apache.org/jira/secure/attachment/12713278/0001-MNG-4639-Be-able-to-profile-a-maven-build.patch) (_16.61 kB_)

22 votes, 25 watchers

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.