gradle vs maven maven plugins
Este tutorial discutirá as diferenças entre Gradle e Maven. Você também aprenderá sobre vários plug-ins e configurações Maven:
Como o Maven, o Gradle é uma ferramenta de automação usada por desenvolvedores Java para uma construção. O Gradle é uma ferramenta de código aberto que utiliza uma linguagem específica para o domínio e é desenvolvida em Groovy.
=> Confira o guia de treinamento Maven perfeito aqui.
O que você aprenderá:
Gradle Vs Maven
As principais diferenças entre Gradle e Maven são tabularizadas abaixo:
Gradle | Maven |
---|---|
Em termos de desempenho, o Gradle é melhor, pois lida apenas com a tarefa atual em execução e não com a entrada ou saída fornecida. | O Maven não usa os artefatos de construção anteriores ou cache para criar o projeto, então o tempo necessário para gerar um novo projeto é maior. |
É um sistema de construção de automação desenvolvido em Groovy | É uma ferramenta de construção e gerenciamento de projetos. |
O Gradle não é orientado por nenhum arquivo xml para a construção do projeto; em vez disso, ele usa a linguagem - Groovy, que é específica do domínio. As informações do projeto são mantidas na ferramenta Gradle. | O Maven é conduzido por um arquivo xml que contém informações sobre dependências, plug-ins e perfis e assim por diante. |
O Gradle funciona de forma incremental e oferece uma conclusão de compilação mais rápida. | O Maven não adota uma abordagem incremental e é mais lento em termos de tempos de construção do que o Gradle. |
O script do Gradle é simples, não é longo e pode ser facilmente compreendido. | O Maven possui o arquivo xml que é descritivo, extenso e de difícil compreensão. |
O Gradle pode ser personalizado facilmente, pois tem muitas flexibilidades em termos de grande número de opções disponíveis na ferramenta com o suporte IDE. | A customização do Maven não é fácil e às vezes não é possível, uma vez que não tem suporte IDE. |
O objetivo de uma ferramenta Gradle é ter novos recursos no projeto. | O objetivo de uma ferramenta Maven é terminar um projeto em um tempo determinado. |
No Gradle, a compilação Java não é uma etapa obrigatória. | No Maven, a compilação é uma etapa necessária. |
Gradle é uma ferramenta comparativamente moderna e seus usuários são limitados em número. | Maven é uma ferramenta familiar e popular entre os desenvolvedores Java. |
Várias dependências para o projeto podem ser adicionadas no Gradle sem o uso de xml. | Inúmeras dependências podem ser adicionadas ao projeto, adicionando-as ao arquivo xml (pom), tornando-o mais complexo e difícil de gerenciar do que o Gradle. |
O arquivo Build.gradle contém os elementos como group, baseName e version. | O arquivo Pom.xml contém os elementos como, e. |
Poucas diferenças entre Maven e Gradle
O Gradle é constituído de um grupo de tarefas que precisam ser executadas. Já o Maven possui um modelo de fases constante e preciso. As metas do Maven estão vinculadas às fases do projeto e cada meta é semelhante às tarefas do Gradle.
atuação
No que diz respeito ao desempenho, o Gradle e o Maven podem executar mais de um build em diferentes módulos em paralelo.
No entanto, o Gradle segue uma abordagem de construção incremental e verifica se as tarefas são modificadas ou não e lida apenas com os arquivos que estão sendo atualizados.
O Gradle tem um desempenho melhor devido aos recursos listados abaixo:
- Compilação da classe Java de forma incremental.
- Reutilizar os artefatos de construção de outras construções do Gradle com entradas semelhantes.
- Mais uso de APIs.
- Compilação mais rápida com a ajuda do daemon do compilador.
O gerenciamento do cache de compilação torna o Gradle muito mais rápido que o Maven.
Flexibilidade
O Gradle é usado pelo Google como uma ferramenta de construção para Android porque foi projetado de forma que possa ser expandido com as metodologias mais básicas. O modelo do Gradle pode ser utilizado para o desenvolvimento de C ou C ++ e pode ser estendido para qualquer outro ambiente.
O Maven não pode ser personalizado facilmente e nem sempre é viável. Isso torna mais fácil compreender os builds do Maven se não tivermos que lidar com nenhum requisito complexo ou exclusivo. No entanto, o Gradle é facilmente personalizável para uso.
O Gradle oferece uma IU da web interativa interessante para tarefas de codificação, depuração e otimização de construção no Build Scan. Ele fornece informações importantes sobre as tendências, histórico e outros parâmetros da construção.
Gestão de Dependências
O Gradle tem melhor implementação de APIs e dependências do que o Maven. Além disso, permite caches coincidentes. Isso significa que vários projetos podem utilizar o cache comum sem serem substituídos uns pelos outros. O Gradle tem soma de verificação e sincroniza caches junto com os repositórios.
Ele tem algumas das características de gerenciamento de dependência, como:
- Regras de substituição para bibliotecas compatíveis.
- Regras ReplacedBy.
- Restaure as dependências do projeto com as externas e vice-versa.
Gradle e Maven têm dependências dinâmicas e transitivas. O Maven tem os repositórios Local, Central e Remoto, enquanto o Gradle tem o JCenter. Além disso, existem repositórios personalizados internos às organizações.
Exemplos de codificação de Gradle e Maven
2.0.0 com.softwareTest Java-builds jar 2.0 j unit junit 2.10 org.apache.maven.plugins maven-surefire-plugin 2.2.1
Para executar uma meta Maven que gera um arquivo jar, o seguinte comando Maven é usado:
programas que usam c ++
mvn package
Portanto, vemos que o arquivo pom.xml é descritivo e os projetos Maven com várias tarefas, configurações e dependências terão um arquivo xml extenso.
O código build.gradle correspondente com o mesmo resultado é fornecido a seguir:
apply plugin:'java' apply plugin:'maven' group = 'com.softwareTest' version ='2.0' repositories { mavenCentral() } dependencies { testCompile group:'junit', name:'junit', version:'2.10' }
Assim, vemos que o script Gradle é mais curto quando comparado ao Maven. O comando abaixo é usado para executar um grupo de tarefas.
gradle tasks –all
Vemos que o Gradle é mais capaz do que o Maven. Mas pode haver ocasiões em que não exigimos todas essas funcionalidades adicionais do Gradle. Portanto, o Maven é mais adequado para projetos pequenos, enquanto o Gradle é usado principalmente em projetos maiores.
Comandos básicos do Gradle Vs Maven
A tabela a seguir lista alguns comandos básicos do Gradle vs Maven:
Propósito | Comando Gradle | Comando Maven |
---|---|---|
infalível | Os testes Junit são executados em um carregador de classes isolado. | |
Para gerar WAR / EAR / JAR | gradle assemble | pacote mvn |
Para executar e compilar | teste gradle | teste de mvn |
Excluir diretório de construção | gradle clean | mvn limpo |
Integrar com Eclipse | eclipse gradle | Eclipse mvn: eclipse |
Para instalação | instalação gradle | mvn install |
Para obter a versão | gradle -version | mvn -version |
Podemos converter Gradle em Maven e vice-versa.
Podemos seguir as etapas abaixo para alterar o Maven para Gradle:
# 1) Navegue até a pasta do projeto Maven (localização do arquivo pom.xml).
#dois) Execute o comando gradle init.
Isso resultará na geração de uma compilação do Gradle simultaneamente settings.gradle arquivo e build.gradle os arquivos serão criados.
Para alterar o Gradle para Maven, seguimos as etapas abaixo na ordem:
# 1) build.gradle O arquivo deve ter o plugin Maven.
# 2) build.gradle o arquivo deve ter o seguinte bloco de código:
apply plugin: 'java' apply plugin: 'maven' group = 'com.test' version = '0.4' dependencies { compile 'commons-lang:commons-lang:2.3' }
# 3) Então execute gradle install.
Isso resultará na geração de arquivos pom-default.xml dentro da subpasta pom.
Configuração do Maven
As informações de configuração do Maven para uso e projetos construídos permanecem nos seguintes locais:
- Variável ambiental de MAVEN_OPTs : Ele contém as informações necessárias para iniciar a Java Virtual Machine (JVM) e também fornece recursos adicionais, como as configurações de memória da JVM podem ser definidas para um valor como -Xms256m -Xmx512m.
- Arquivo Settings.xml: Este arquivo reside no diretório USER_HOME / .m2. Este arquivo cuida da maioria das configurações usadas em todos os projetos construídos no Maven.
- Pasta .mvn: Esta pasta encontra um local no nível superior do diretório do projeto. Os arquivos jvm.config, maven.config e extensions.xml possuem informações sobre a configuração específica do projeto.
- Arquivo .mvn / extension.xml
- arquivo .mvn / maven.config
- arquivo .mvn / jvm.config
A configuração do Maven é feita nos níveis listados abaixo:
- Instalação: Isso é acomodado durante a instalação do Maven.
- Projeto: Este é o estático mantido no arquivo pom.xml.
- Do utilizador: Isso é configurado para um usuário específico.
A configuração do projeto é aplicada a todo o projeto enquanto as demais configurações (instalação e usuário) são aplicadas ao ambiente onde estamos trabalhando. A instalação e as configurações do usuário não podem ser adicionadas como parte dos dados compartilhados do projeto.
Configuração do Repositório Local
O local do repositório local pode ser alterado como parte da configuração do usuário. Por padrão, o local é o diretório .m2. Isso é alcançado pelo código xml abaixo.
path to the directory
Configuração de proxy
A configuração do proxy pode ser mantida nas configurações.
Configuração de resolução de artefato paralelo
O Maven baixa no máximo 5 artefatos de vários grupos de uma vez.
Para baixar dois artefatos, precisamos especificar o seguinte comando:
mvn -Dmaven.artifact.threads = 2 verificar
Configuração de implantação e segurança
seção descreve os repositórios a serem implantados em um projeto específico. Informações como nome de usuário, senha e outros parâmetros de segurança não podem ser colocados dentro desse projeto. Para fornecer essas informações, precisamos adicioná-los mapeados para a id do repositório de implantação dentro do projeto.
Isso é alcançado pelo código xml abaixo.
testrepository test password
Configurações de perfis
O repositório Maven pode ser configurado para ser colocado no perfil. Ao mesmo tempo, pode haver mais de um perfil. Dependendo do requisito, podemos manter um perfil ativo para que possamos alternar para vários ambientes.
Outras configurações opcionais
Para ter uma configuração específica do ambiente que não seja específica para cada projeto, precisamos definir as configurações.
quais são os melhores aplicativos de vr para Android
O Maven contém um arquivo de configurações que está presente no diretório inicial de instalação ou do usuário. Ele cuida da configuração de alguns dos parâmetros ambientais conforme mostrado abaixo:
- Nome de usuário e senha do servidor
- Localização do gerenciador de repositório
- Servidor proxy HTTP
Configurações de Segurança
Até o Maven 2.1.0+, temos a opção de criptografar as senhas dentro do arquivo de configurações. Mas devemos construir uma senha mestra antes de ir para a criptografia.
Plugins Maven
Os plug-ins Maven são parte integrante da estrutura Maven. Cada plugin é atribuído a uma tarefa específica.
Existem dois tipos de plug-ins, conforme mostrado abaixo:
- Build Plugins : Eles são executados no momento da construção e devem ser descritos na tag de construção no arquivo pom.xml.
- Plugins de relatórios : Eles são executados no momento da geração do site e devem ser descritos na tag de relatório no arquivo pom.xml.
A lista abaixo mostra alguns dos plug-ins principais do Maven:
Plugins principais | Tarefas Realizadas |
---|---|
limpar | Limpa artefatos após a construção. |
compilador | O código-fonte Java é compilado. |
implantar | Os artefatos de construção são implementados no repositório remoto. |
instalar | Os artefatos de construção são instalados no repositório local. |
verificador | Usado para testes de integração. |
Recursos | O diretório de saída obtém a cópia dos recursos para inclusão no Jar. |
local | O site do projeto atual é gerado. |
verificador | Usado para teste de integração e verifica condições específicas. |
Alguns dos plug-ins do Maven Reporting estão listados abaixo:
Plugins de relatórios | Tarefas Realizadas |
pmd | Um relatório pmd é gerado. |
changelog | As mudanças recentes do SCM são geradas na forma de lista. |
alterar | O relatório sobre o rastreador de problemas é gerado. |
estilo de verificação | O relatório de estilo de verificação é gerado. |
Javadoc | O doc Java para o projeto é gerado. |
relatório infalível | Os resultados dos testes de unidade são gerados em forma de relatório. |
verificar link | O relatório de verificação de link para documentação do projeto é gerado. |
jxr | Uma referência cruzada de origem é gerada. |
Seção FAQ
P # 1) O Maven é melhor do que o Gradle?
Responda: O Gradle usa uma abordagem incremental e de prevenção de trabalho. O Gradle monitora as tarefas de entrada e saída e executa aquelas que são necessárias. No entanto, para projetos menores, o Maven ainda é preferido, enquanto o Gradle é adequado para projetos maiores e complexos.
P # 2) Por que o Gradle é mais rápido que o Maven?
Responda: O Gradle é muito mais rápido que o Maven por causa das abordagens abaixo do Gradle.
- Uso do Gradle Daemon que mantém os detalhes da construção prontos na memória.
- Compilação de forma incremental.
- Uso de cache de construção que obtém os artefatos de construções anteriores.
- Modelagem de dependências de forma eficiente pelo Gradle com ajuda do plugin Java.
P # 3) O que é Maven Gradle?
Responda: Gradle é uma ferramenta de construção de automação desenvolvida com os recursos do Apache Ant e do Apache Maven. É de código aberto e funciona em linguagem relacionada ao domínio baseada em Groovy. Ele não é conduzido pelo arquivo pom.xml usado pelo Maven para as dependências e configurações do projeto.
P # 4) Por que o Maven é preferido?
Responda:
O Maven é o preferido devido às seguintes vantagens:
- Repositório central para todas as dependências do projeto.
- Mantém uma estrutura de pasta comum dentro das organizações.
- Pode ser integrado com ferramentas de controle de versão como Git e ferramenta de integração contínua como Jenkins.
- O processo de construção é simplificado, fácil e uniforme.
P # 5) O Maven é apenas para Java?
Responda: Maven é uma ferramenta de gerenciamento e construção de projetos geralmente usada para projetos Java. No entanto, pode ser usado para projetos desenvolvidos em Ruby, C #, Scala e assim por diante.
P # 6) Por que o Maven é usado no Eclipse?
Responda: O Eclipse IDE baixa automaticamente as dependências e configurações dos repositórios Maven. Além disso, a criação de novos projetos Maven, suporte ao projeto Maven existente e pom .xml pode ser feito com a ajuda do Eclipse.
P # 7) Qual é o idioma do Gradle?
Responda: O Gradle fornece uma linguagem relacionada ao domínio também chamada de DSL para a construção. Essa linguagem pode ser obtida em Groovy e Kotlin.
c ++ rand entre 0 e 1
P # 8) Quais são as vantagens do Maven?
O Maven tem algumas dependências como as seguintes:
- Repositório central para todas as dependências do projeto.
- Mantém uma estrutura de pasta comum dentro das organizações.
- Pode ser integrado com ferramentas de controle de versão como Git e ferramenta de integração contínua como Jenkins.
- O processo de construção é simplificado e fácil.
Conclusão
Este tutorial discutiu conceitos como Gradle vs Maven, como converter Gradle para Maven e vice-versa, configurações Maven e plug-ins. Além disso, alguns dos comandos básicos do Maven e do Gradle foram explorados.
No que diz respeito aos plug-ins Maven, discutimos alguns dos plug-ins de relatórios e principais do Maven.
Por ser o Maven um tema quente no mercado, é necessário desenvolver um entendimento do assunto e desenvolver expertise nesta ferramenta.
=> Leia a série de treinamento Easy Maven.
Leitura recomendada
- O que é Maven - Tutorial Maven para iniciantes
- Como criar um projeto Gradle com selênio
- Como usar o Gradle para criar, testar e implantar projetos
- Gatling Script e criar projeto Gatling usando o arquétipo Maven
- Integração do Maven com o TestNg usando o plug-in Maven Surefire
- O que são POM (Project Object Model) e pom.xml no Maven
- Configurando o Maven com Eclipse Java IDE
- 31 Perguntas e Respostas da Entrevista Maven Mais Frequentes