1. O que é maven
O MAVEN é uma ferramenta de construção de projetos desenvolvida em Java. Ele pode automatizar a compilação, teste, publicação e documentos durante o processo de construção do projeto, reduzindo bastante a carga de implantação dos programadores.
2. Instale o Maven
Instalar o Maven é muito simples. Visite a página oficial do Maven para download: http://maven.apache.org/download.cgi
Após o download, configure a variável de ambiente M2_HOME e execute o MVN --version no terminal. Quando você vê o prompt de saída correto, o Maven é instalado.
3. Conceitos básicos de Maven
A idéia principal do Maven é o POM, ou seja, o modelo de objeto de projeto. Os arquivos POM descrevem os recursos (código -fonte, dependências, testes etc.) usados por um projeto MAVEN na forma de um arquivo XML. A figura a seguir descreve a estrutura do arquivo POM e como o Maven chama o arquivo POM.
Quando um comando maven for executado, um arquivo POM será passado e o maven será executado no recurso descrito no POM
Arquivo POM:
<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 "> <ModelVersion> 4.0.0 </modelversion> <!-The Basics-> <pursion> ... </Packaging> <stifactid> ... </Artifactid> <Brous> ... </</Packaging> <pendencyManagement> ... </dependencyManagement> <modules> ... </modules> <PROPERTIES> ... </Properties> <!-Build Settings-> <bruct> ... </fuild> <lorporation> ... </satenting> <!-mais informações do projeto-> <name> ... </name> <section> ... </Organization> </sicense> </sicense> </micension> </ratangens> </ratankens> ... </desenvolvedores> </colaboradores> </colaboradores> <!-Configurações do ambiente-> <SSUSUEMANGEMENTE> ... </sssuemanagement> <cimanagement> ... </cimanagement> <ailinglists> ... </MailingLists> <Cm> ... <ricequisitos> ... </srequisites> ... </positórios> <Repositórios> ... </positórios> <fluginRepositionies> ... </pluginrepositórios> </distributionmanagement> ... </distribuição
ModelVersion é a versão do modelo POM, 4.0.0 suporta maven2 e 3
Coordenadas do Maven (coordenadas do Maven)
(1) GRUPOID: É o ID exclusivo de uma organização ou projeto. Na maioria dos casos, ele usará o nome da raiz do pacote Java do projeto como grupo, como com.pastqing
(2) Artifactid: é o nome do projeto que está sendo construído, por exemplo, um sistema de pagamento Artifactid é web pay. Artifactid é o nome do subdiretório sob o diretório do grupo no repositório Maven
(3) Versão: como o nome implica o número da versão da emissão do projeto
Os três itens acima fazem parte do nome do resultado da construção. Depois que o projeto for construído, um pacote JAR será gerado. O caminho localizado no repositório maven é maven_repo/com/pastqing/web pay/1.0/web pay-1.0.jar
4. Um projeto Hello World Java construído com Maven
Crie um projeto usando o arquétipo do plug -in maven:
Abra o diretório de trabalho no terminal e execute o comando:
Arquétipo MVN: Gere
, A primeira vez que é executada é mais lenta, porque a primeira vez que você precisa baixar o protótipo do projeto relacionado do repositório Central do MAVEN. Após o download, o modelo do projeto será selecionado e o GroupID, o ArtifactID, a versão etc. será inserido. Haverá um prompt de sucesso após a conclusão da construção.
Embalagem o projeto: alterne para o diretório raiz do projeto e execute o pacote MVN. Depois que o pacote for bem -sucedido, o projeto gerará uma pasta de destino com arquivos JAR gerados e arquivos de classe.
Execute o arquivo JAR:
Java -CP Target/Helloworld-1.0-Snapshot.jar com.pastqing.app
Neste ponto, um projeto Java mais simples construído pelo Maven foi concluído.
5. Um projeto Java-Web construído com Maven
A geração de um projeto da Web é basicamente semelhante a gerar um projeto Java, mas o modelo usado é diferente. Não vou explicar aqui. Vamos falar sobre como usar o Tomcat ou o Jetty Plug-in para executar um projeto da Web. Aqui tomamos o Tomcat como exemplo.
Instalação do plug-in do Maven Tomcat: http://tomcat.apache.org/maven-plugin-2.2/
Adicionamos as seguintes informações de plug-in ao arquivo POM no projeto da web
<Plugin> <UroupId> org.apache.tomcat.maven </groupiD> <TROTIFACTID> tomcat6-maven-plugin </artifactId> <versão> 2.2 </versão> </plugin> <tlugin> <ruproud> org.apache.tomcat.maven </grupo> arteftId> <vlugIn> <roupiD> org.apache.tomcat.maven </grupo> artef> <Versão> 2.2 </sisters> </flugin>
Dessa forma, integramos o plug-in maven do tomcat e precisamos apenas de um comando para implantar e iniciar o serviço. O comando é o seguinte:
MVN TOMCAT: Corra
(Tomcat6)
MVN TOMCAT7: Corra
(Tomcat7)
Implantação automática no tomcat externo usando o plug -in Tomcat Maven
A implantação automática acima usará o Tomcat incorporado no Maven. Em seguida, modificamos o arquivo POM para permitir que o projeto seja implantado no TomCat externo.
Modifique o arquivo POM do projeto e adicione informações de configuração do servidor
<Plugin> <PuerpId> org.apache.tomcat.maven </groupiD> <TRAFACTID> TOMCAT7-MAVEN-PLUGIN </ArtifactId> <Version> 2.2 </siers> <figuration> <url> http: // localhost: 8080/gerenciador/</url> <verlat> http: // localhost: 8080/gerente/</url> <dastword> admin </senha> </figuration> </flugin>
Os valores do servidor, nome de usuário e senha correspondem um por um para servidor, nome de usuário e senha no setting.xml em %maven_home.
Inicie o Tomcat externo e execute o comando mvn tomcat7: reimploy
6. Como construir um projeto multimódulo com Maven
1. POM POM
Todos os arquivos do Maven POM são herdados de um POM dos pais. Se nenhum POM pai for especificado, o arquivo POM será herdado do POM da raiz. O relacionamento de integração dos arquivos POM é mostrado na figura abaixo:
Você pode fazer um arquivo POM herdar explicitamente outro arquivo POM. Dessa forma, as configurações de todos os arquivos infantis POM podem ser modificados modificando as configurações do arquivo público POM. Aqui usamos a tag pai para definir o POM dos pais. Vamos construir um projeto Mavne Multi-Module
2. Construa a estrutura do diretório do projeto
Criamos um projeto Maven-Web chamado EducationCloud. Em seguida, criamos várias pastas no diretório do projeto para dividir nossos módulos. Eles são parentes educacionais (módulo pai), educação educacional (negócios), entidade-escolaridade (entidade), educação para educação (serviço da web)
A divisão de diretório pode ser dividida de acordo com as necessidades, minha divisão é como acima
3. Modifique o arquivo POM
Usamos tags do módulo para dividir os módulos. Abra o arquivo POM no diretório raiz e adicione a tag moudle.
<? xml versão = "1.0" coding = "utf-8"?> <Projeto xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.ww3.org/2001/xmlschaMance xsi: schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion> 4.0.0 </modelversion> <vroupId> com.education <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <modules> <module>Education-parent</module> <module>Education-core</module> <module>Education-entity</module> <module>Education-web</module> </modules> <name>EducationCloud</name></project>
Aqui falamos sobre a etiqueta de embalagem: a mais comum é empacotá -la como uma jarra, guerra. Qualquer projeto Maven precisa definir o elemento embalado no arquivo POM. Se o elemento não for declarado, ele será embalado como um frasco por padrão. Se o valor da definição for guerra, ele é embalado como um pacote de guerra. Se o valor for POM, nenhum pacote será gerado (geralmente usado no módulo pai).
Adicione tags parentais a cada módulo:
A etiqueta pai é usada para definir a posição de coordenadas do POM dos pais e é definida da seguinte forma:
<Dor> <PuerpId> com.educationCloud </frugiD> <TRAFACTID> EducationCloud-Parent </ArtifactId> <Versão> 1.0-Snapshot </sisters> <lorouspath> </relativepath> </a Parent>
GrupoID, aritFactid, versão são elementos que representam as informações de localização do pai POM. RelityPath é o caminho relativo que representa a localização do POM dos pais. O padrão é ../pom.xml. Deve -se notar aqui que a versão GroupID, AritFactid, deve corresponder ao arquivo POM pai.
Use a DependEncyManagement para gerenciar todas as dependências no projeto. Para gerenciar dependências de maneira uniforme, usamos a dependência da administração no arquivo POM do módulo do projeto pai para declarar todas as dependências no projeto. Dessa forma, ao se referir a dependências em outros subprojetos, o número da versão pode ser omitido e também é fácil de modificar.
Escreva o arquivo POM do módulo do projeto pai ** EducationCloud-Parent, adicione o seguinte:
Use o PluginManagement para gerenciar o plug -in maven no projeto. Para gerenciar uniformemente o plug -in Maven no projeto, como o plug -in de compilação do MAVEN, o plug -in de embalagem etc. e suas informações de configuração, adicione o pluginmanagement ao arquivo POM do projeto pai para gerenciamento. Dessa forma, os plugins mencionados em todos os submódulos serão processados uniformemente, e o seguinte será adicionado:
<pluginManagement> <plugins> <!-- Complile plugin configuration--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-complier-plugin</artifactId> <version>3.3</version> <configuration> <source>1.7</source> <target>1.7</target> <encoding>UTF-8</encoding> </frifiguration> <flugin> </plugins> </pluginManagement>
Acima, adicionamos a configuração do plug-in de compilação do Maven, compilado com JDK1.7. Após salvar, podemos ver as modificações correspondentes no POM efetivo de cada submódulo.
Use tags de propriedades para definir constantes:
Definimos os números da versão de cada dependência como constantes diferentes, para que seja conveniente para modificações futuras:
<PROPERTIES> <JDKVERSION> 1.7 </ndkversion> <ServletVersion> 3.1.0 </servletversion> <ysqlversion> 5.1.34 </mysqlversion> <nunitversion> 4.12 </nunitversion> <FaultEncoding> UTF-8.
Ao citar, basta usar a forma de $ {jdkversion}.
Observe que todas as operações acima podem ser operadas no IDE, tornando -o mais conveniente e simples.