Goal – это конкретное выполняемое плагином действие. Плагин привязывает свои голы к фазам. Например, когда мы вызываем mvn clean, работу по удалению файлов сборки делает не сама фаза clean, а привязанная к ней цель clean:clean из встроенного maven-clean-plugin.
Когда аргументом команды mvn передается фаза, кроме нее самой выполнятся все предшествующие ей в том же лайфсайкле. Вместо фазы возможно явно передать цель (mvn clean:clean вместо mvn clean), но тогда никакие другие цели вызваны не будут (в данном примере цели фазы pre-clean).
Фазы всегда выполняются в том порядке, в котором они следуют в жизненном цикле. Если к одной фазе привязано несколько целей, они отработают в порядке объявления в pom.xml.
Некоторые плагины могут предоставлять цели, не привязанные ни к каким фазам. Их можно вызвать только явно.
Если в команду mvn передается несколько фаз/целей, они выполнятся последовательно. Каждая цель в процессе выполняется только однажды.
Так, вызов mvn test package – то же самое что mvn package, потому что в первом случае все цели из фазы test (и предыдущих) уже будут исполнены и пропущены в package. mvn clean install так заменить не получится, потому что это фазы из разных жизненных циклов.