default is one of the three available build life cycles and as the name suggests, it is taken into build consideration automatically if no other life cycle is specified.
These build lifecycles are defined by a different list of build phases in a sequence, thus a build phase represents a stage in the specific lifecycle.
validate is first phase in default build life cycle.
If we talk about specific to default life cycle below are the main phases which execute in following sequence in order to complete default build life cycle:
validate, compile, test, package, verify, install, deploy. Actually there are 21 phases in total in default build life cycle.
If we try to run any specific phase, it will start from validate phase and will execute till the specified phase, which directly means that whenever default build life cycle is considered for building, it will always start with validate phase, doesn't matter which phase you are specifying.
A plugin goal is different than build phase, it represents a specific task which contributes to the building and managing of a project.
A plugin goal is not mandatory in order to build or complete a build life cycle, but if it is there, It may be bound to a specific build phase of underlying life cycle or it may not be bound to any build phase.
If a plugin goal is not bound to any build phase, it can be executed outside of build life cycle by direct invocation, in that case there is no point of executing validate phase.
Moreover there are no plugins bound to the phases validate, initialize and verify by default and for other few phases also.
Have a look at maven life cycle bindings, which shows that which goals get run in which phase by default, For example compile phase goals will always be executed before test phase goals.
If ywe specify a phase then maven will run all phases up to that phase we specified, in order and for each phase it will run all goals attached to that phase.
But if you only specify the goal then it will bind that goal to a given default phase.
But when you specify the execution you can also explicitly specify the phase for that goal as well.
One more thing that if we are not specifying any phase for a goal, and goal is not bound to any default phase, it will run only that goal and nothing else.
But here is a catch, If we are trying to run only specific goal, and the build phases required to complete the task specified in goal has not executed previously, it will fail.
That is where we will get error saying
"Failed to execute goal..."
One good example is trying to execute jar:jar for a jar packaging, if
compile phase is not yet executed, this goal run will fail because
maven will not get complied code to package as jar.
For more detail look here & here
default maven lifecycle bindings
Update: Short answer: No, maven bypass a phase if there is no goal defined.
A phase without a goal is just a template which has nothing to do.
Because by default mvn validate does nothing if there is no user-defined plugin goals.
A build phase is comprised of plugin goals. Because validate & initialize has no default plugins bound. No goals(including default & custom/specified both) for a phase that means phase does nothing.
If you are not declaring a plugin goal that is bound to the validate phase, the validate phase will do nothing.
You can relate to another scenario: when class loads static members are seeked to load, if no static member is available it skips that phase and continue.