Порядок выполнения цели, когда цель плагина привязана к фазе жизненного цикла в maven

#java #maven #build #maven-3 #maven-plugin

#java #maven #сборка #maven-3 #maven-плагин

Вопрос:

Я пытаюсь понять порядок выполнения цели maven.

Итак, у меня есть pom, который привязывает maven-antrun-plugin run цель к clean фазе сборки жизненного цикла maven.

При запуске mvn clean я получаю результат, как показано в разделе вывода:
Теперь мои вопросы:
1 почему maven-clean-plugin:2.4.1:clean (default-clean) цель была выполнена так, как я прикрепил, какую цель запустить, т.е. pre-process-classes .. итак, добавляется ли моя цель в список целей по умолчанию, который есть у maven, или она может быть переопределена? в принципе, как maven решает, какую цель выполнить?

2 В разделе плагинов у меня есть только artifactId и version , но нет groupId . итак, как maven нашел правильный плагин?. разве groupId не нужен?

Вывод

  --- maven-clean-plugin:2.4.1:clean (default-clean) @ second_third ---
 Deleting D:tmpmavenfirst_secondtarget

 --- maven-antrun-plugin:1.1:run (pre-process-classes) @ second_third ---
 Executing tasks
echo] Build Dir: D:tmpmavenfirst_secondtarget
 

pom.xml

 <project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>my.second_third_maven</groupId>
  <artifactId>second_third</artifactId>
  <version>1.1.0</version>
  <build>
  <plugins>
        <plugin>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>1.1</version>
          <executions>
            <execution>
              <id>pre-process-classes</id>
              <phase>clean</phase>
              <goals>
                <goal>run</goal>
              </goals>
              <configuration>
              <tasks>
                <echo>Build Dir: ${project.build.directory}</echo>
              </tasks>
              </configuration>
            </execution>
          </executions>
        </plugin>
    </plugins>
  </build>
</project>
 

Ответ №1:

Чтобы ответить на 2-й вопрос:

 By default, Maven will search the groupId org.apache.maven.plugins 
for prefix-to-artifactId mappings for the plugins it needs to
perform a given build.
 

http://maven.apache.org/guides/introduction/introduction-to-plugin-prefix-mapping.html

раздел «Настройка Maven для поиска плагинов»