CodeGym/Cursos Java/Módulo 3/plug-ins do Maven

plug-ins do Maven

Disponível

6.1 Introdução aos plug-ins

Os ciclos de vida padrão podem ser aprimorados com funcionalidade usando plug-ins Maven. Os plug-ins permitem inserir novas etapas no ciclo padrão (por exemplo, distribuição para o servidor de aplicativos) ou estender as etapas existentes.

Os plug-ins no Maven não são algo extraordinário, pelo contrário, são a coisa mais comum e encontrada com frequência. Afinal, se você deseja definir algumas nuances da construção de seu projeto, precisa especificar as informações necessárias no pom.xml. E a única maneira de fazer isso é escrever um “plugin”.

Como os plug-ins são tanto artefatos quanto dependências, eles são descritos da mesma maneira. Em vez da seção de dependências - plugins, em vez de dependência - plugin, em vez de repositórios - pluginRepositories, repositório - pluginRepository.

Exemplo:

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>2.6</version>
    </plugin>
</plugins>

A declaração de um plug-in no pom.xml permite corrigir a versão do plug-in, bem como definir os parâmetros necessários para ele, definir vários parâmetros de configuração e vincular as fases.

Em outras palavras, o Maven executa certos plugins que fazem todo o trabalho. Ou seja, se quisermos ensinar o Maven sobre as compilações especiais do projeto, precisamos adicionar ao pom.xml uma indicação para iniciar o plug-in desejado na fase necessária e com os parâmetros necessários .

A quantidade de plugins disponíveis é muito grande, existem vários plugins que permitem executar uma aplicação web diretamente do maven para testá-la em um navegador, gerar recursos e afins. A principal tarefa do desenvolvedor nessa situação é encontrar e aplicar o conjunto de plug-ins mais apropriado .

6.2 Ciclo de vida e plug-ins

Muitas vezes, um plug-in é usado para iniciar algum tipo de utilitário de console durante a execução de uma determinada fase. Além disso, podemos até executar uma classe Java regular (que possui um método main, é claro).

Exemplo:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>exec-maven-plugin</artifactId>
  <version>1.2.1</version>
  <executions>
    <execution>
      <goals>
        <goal>java</goal>
      </goals>
    </execution>
  </executions>
  <configuration>
    <mainClass>com.example.Main</mainClass>
    <arguments>
      <argument>first-argument</argument>
      <argument>second-argument</argument>
    </arguments>
  </configuration>
</plugin>

Normalmente, os plugins podem ser configurados de forma muito flexível. Todos os plug-ins oficiais dos desenvolvedores do Maven estão muito bem documentados no site oficial do Maven. Por exemplo, para o maven-compiler-plugin na página Apache Maven Project, você pode ver uma lista de todas as variáveis ​​que controlam o plugin. Informações sobre o plugin estão disponíveis no link

Mais informações importantes. Plugins diferentes são chamados pelo Maven em diferentes estágios de seu ciclo de vida. Por exemplo, um projeto que descreve um aplicativo de desktop Java swing tem estágios de ciclo de vida diferentes daqueles que são típicos para o desenvolvimento de um aplicativo da web (war).

Ou, por exemplo, quando o comando “mvn test” é executado, todo um conjunto de etapas do ciclo de vida do projeto é iniciado: “process-resources”, “compile”, “process-classes”, “process-test -resources”, “test-compile”, teste. Você pode ver a menção dessas fases nas mensagens exibidas pelo Maven:

[INFO] Scanning for projects...
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources)     @ codegym ---
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile)      @ codegym
[INFO] --- maven-resources-plugin:2.6:testResources         (default-testResources) @ codegym ---
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile)          @ codegym ---
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test)         @ codegym ---
[INFO] Surefire report directory:           t:\ projects\codegym\target\surefire-reports

6.3 Objetivos no Maven - objetivos

No Maven, também existe uma meta (meta). goal é como o alvo de inicialização do Maven. Os principais objetivos coincidem com as principais fases:

  • validar;
  • compilar;
  • teste;
  • pacote;
  • verificar;
  • instalar;
  • implantar.

Em cada fase do ciclo de vida do projeto, é chamado um plugin específico (jar-library), que inclui uma série de objetivos (objetivo)

Por exemplo, o plug-in "maven-compiler-plugin" contém dois destinos: compiler:compile para compilar o código-fonte principal do projeto e compiler:testCompile para compilar testes. Formalmente, a lista de fases pode ser alterada, embora isso raramente seja necessário.

Se você precisar executar algumas ações fora do padrão em uma determinada fase, basta adicionar o plug-in apropriado ao pom.xml

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>Name-plugin</artifactId>
  <executions>
    <execution>
      <id>customTask</id>
      <phase>generate-sources</phase>
      <goals>
        <goal>pluginGoal</goal>
      </goals>
    </execution>
  </executions>
</plugin>

O mais importante neste caso é definir para o plugin o nome da fase “execução/fase”, na qual você precisa embutir a chamada ao objetivo do plugin “objetivo”. Por exemplo, você precisa gerar código Java baseado em xml. Então você precisa da fase “generate-sources”, que é colocada antes da chamada para a fase de compilação e é ideal para gerar parte dos fontes do projeto.

Comentários
  • Populares
  • Novas
  • Antigas
Você precisa acessar para deixar um comentário
Esta página ainda não tem nenhum comentário