O conceito
Maven é uma ferramenta de gerenciamento de dependência para java. A chamada dependência refere-se a vários pacotes jar e bibliotecas de terceiros introduzidos no processo de desenvolvimento Java, e essas bibliotecas também podem se referir a outras bibliotecas nesta província, para que nos referimos diretamente como dependências diretas , e as dependências da biblioteca são chamadas dependências indiretas . Se introduzirmos manualmente essas dependências, o processo se tornará muito complicado, portanto, precisamos de um Maven de armazém para gerenciar e introduzir essas dependências para nós. Cada pacote de dependência é chamado de componente no Maven .
Então, como encontramos cada componente com precisão no armazém? Isso precisa ser feito por meio de coordenadas.As coordenadas do armazém maven consistem em groupId, artifactId e version. Onde groupId é o nome da sua empresa, artifactId é o nome do seu projeto, version é o número da versão do projeto e package é o nome do pacote que você precisa criar. Ou seja, quando procuramos dependências no repositório maven, primeiro encontramos o nome da empresa groupId, depois o nome do projeto e, finalmente, encontramos o número da versão para determinar exclusivamente uma dependência.
O armazém do Maven é dividido em armazém local e armazém remoto. Armazém local significa que o maven fará o download do pacote de dependência para um local local. Ao procurar por dependências, localize primeiro o armazém local. Se não for encontrado, retorne ao armazém remoto on-line para encontrar e baixar . Se todos visitarem o mesmo armazém de maven, isso causará muita pressão de carga e acesso lento; portanto, o maven fornece armazéns de espelhos em locais diferentes para as pessoas visitarem nas proximidades.
O Maven também fornece muitos plug-ins , podemos usá-los para concluir facilmente a construção, compilação, empacotamento e outras operações do projeto.
No Maven, se A depende de B, B depende de C e C depende de D, e A depende de E e E também depende de D, então A dependerá de D, que está mais próximo de E. Se as duas dependências forem tão próximas quanto A, elas dependerão da ordem da resolução da dependência.
Instalação e configuração
Instalação: Primeiro baixe o pacote de compactação maven necessário no site oficial do Maven , descompacte-o e, finalmente, adicione a pasta bin no diretório descompactado ao caminho PATH para usar mvn --v na linha de comando para visualizar o número da versão.
Configure o repositório: edite o arquivo maven / conf / settings.xml e especifique o local do repositório local na tag <localRepository>.
<localRepository>D:/Java/maven/repository</localRepository>
Adicionar uma fonte de espelho doméstica: o download de dependências de uma fonte de espelho doméstica é mais rápido do que usar a fonte de download padrão diretamente.Configure como a fonte de espelho do Alibaba Cloud na tag <mirros>
<mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/public </url>
</mirror>
</mirrors>
Criar projeto
Os comandos comumente usados do maven são os seguintes:
mvn -compile |
Compilar o projeto |
mvn -test |
Itens de teste |
mvn -package |
Empacotar o projeto |
mvn -install |
Instale o pacote jar no armazém local |
mvn -clean |
Excluir o arquivo de objeto compilado |
Crie um projeto através do plug-in archetype: digite mvn archetype: generate na linha de comando para criar automaticamente um projeto maven.Como mostrado abaixo, você será solicitado a selecionar o número do tipo maven a ser criado e digite groupId, artifactId, versão, pacote, etc.
Você também pode especificar groupId, artifactId, versão, pacote, etc. em uma linha de comandos
mvn archetype:generate -DgroupId=com.tory -DartifactId=spring-mvc-study -DarchetypeArtifactId=maven-archetype-webapp
Por fim, use o contêiner jetty para executar o projeto: mvn jetty: run, preste atenção à necessidade de introduzir o plug-in jetty no pom, é claro, você também pode apresentar o plug-in Tomcat para executar o projeto no contêiner.
É mais fácil criar um projeto Maven no IntelliJ IDEA: Primeiro, configure o maven no IDEA: Abrir-> Arquivo | Configurações | Compilar, Execução, Implantação | Ferramentas de Construção | Maven no IDEA para configurar as três barras de opções a seguir, correspondentes ao maven Diretório de instalação, arquivos de configuração e diretório do warehouse
Em seguida, crie um projeto Maven, clique em Arquivo | Novo | Projeto para exibir a seguinte interface, selecione o tipo de maven e clique em Avançar. Se você precisar criar um modelo, poderá marcar a criação do arquétipo e selecionar o modelo desejado.
Em seguida, defina o nome e o local do projeto e defina as informações GroupId, ArtifactId, Version
Por fim, selecione as informações selecionadas, clique em Concluir para concluir
arquivo pom.xml
POM é a abreviação de Project Object Model. Após a criação de um projeto maven, um arquivo pom.xml será gerado no diretório raiz para gerenciar dependências. Como mostrado abaixo,
Primeiro, <modelVersion> especifica a versão do POM.
<groupId>, <artifactId>, <version> especificam respectivamente as três coordenadas do projeto, o groupId geralmente é composto de "nome da empresa. Nome do projeto", o artifactId é composto de "nome do módulo do projeto". A versão geralmente consiste em três dígitos, o primeiro dígito representa o número da versão principal, o segundo dígito representa o número da versão da filial e o terceiro dígito representa o número da versão secundária. O Snapshot a seguir representa a versão do snapshot, alfa representa a versão beta, beta representa a versão beta pública, RC (Release Candidate) é o último candidato a lançamento, release representa a versão estável e o GA (Disponibilidade Geral) é oficialmente lançado.
<packaging> especifica o método de empacotamento do projeto, o padrão é jar package
<name> representa o nome do projeto, <url> é a URL do projeto
Em <dependências>, as dependências específicas exigidas pelo projeto são introduzidas por meio de coordenadas. <scope> representa o escopo do uso da dependência.Aqui, test representa que a dependência só pode ser usada no teste. O padrão é compilação, que é eficaz na compilação, teste e execução, desde que seja eficaz na compilação, teste e tempo de execução é eficaz nos banheiros e na execução. Você também pode usar a marca <exclusion> para excluir dependências transitivas que se referem a dependências, como A depende de B, B depende de C e não deseja fazer referência a C ao introduzir dependências B em A, então você pode usar a exclusão para excluir C.
Introduza o plugin maven usado em <build>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!--指定POM版本-->
<modelVersion>4.0.0</modelVersion>
<!--项目的maven坐标-->
<groupId>org.example</groupId>
<artifactId>SpringMVC</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>SpringMVC Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<!--项目所需依赖-->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
<!--所用maven插件-->
<build>
<finalName>SpringMVC</finalName>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
As dependências de Pom podem ser herdadas. Por exemplo, a dependência de junção introduzida no <dependencyManagement> do projeto pai é a seguinte: Depois que o projeto filho depende do projeto pai, ele pode herdar o junit sem apresentá-lo novamente.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>