zoukankan      html  css  js  c++  java
  • maven学习

    1.Maven介绍及环境搭建

      1.1 maven介绍

        maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。

      1.2 maven环境搭建

        从maven官网下载最新的maven版本,并配置环境变量(此处不做详细介绍,不会可以百度)。

    2.maven版的HelloWorld

      第一步: 建立maven的目录结构  

        --HelloWorld(项目名)

                   --src

                      --main

                         --java

                           --com.imooc.maven01.model(包名)

                      --test

                         --java

                           --com.imooc.maven01.model(包名)

      第二步:创建Java文件及其测试文件

      HelloWorld.java      

    1 package com.imooc.maven01.model;
    2 
    3 public class HelloWorld {
    4     public String sayHello() {
    5         return "HelloWorld!";
    6     }
    7 }

      HelloWorldTest.java测试类

    package com.imooc.maven01.model;
    
    import org.junit.*;
    import org.junit.Assert.*;
    
    public class HelloWorldTest {
    	@Test
    	public void testHello() {
    		Assert.assertEquals("HelloWorld!", new HelloWorld().sayHello());
    	}
    }
    

      第三步:配置pom.xml文件

      pom.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <project xmlns="http://maven.apache.org/POM/4.0.0" 
     3         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
     5         http://maven.apache.org/xsd/maven-4.0.0.xsd">
     6         <modelVersion>4.0.0</modelVersion>
     7 
     8         <groupId>com.imooc.maven01</groupId>
     9         <artifactId>maven01-model</artifactId>
    10         <version>0.0.1-SNAPSHOT</version>
    11         
    12         <dependencies>
    13             <dependency>
    14                 <groupId>junit</groupId>
    15                 <artifactId>junit</artifactId>
    16                 <version>4.10</version>
    17             </dependency>
    18         </dependencies>
    19 </project>

      第四步:编译项目、运行测试、打包项目

      编译项目 mvn compile

      此时在target目录下有两个文件夹,一个是项目编译生成的class字节码文件,另一个是maven状态文件。

      运行测试 mvn test

     运行测试会生成class字节码文件和一个测试报告文件。

      打包文件 mvn package

      运行打包命令会在target目录下生成一个jar包和pom属性文件。

     3.maven常用命令

    mvn -v 查看版本

    mvn compile 编译

    mvn test 测试

    mvn package 打包

    mvn clean 删除target目标文件

    mvn install 安装jar包到本地仓库中,打包到本地仓库之后其他的项目就可以在pom.xml文件中引入这个依赖。

      程序运行时如果需要某个依赖,它会在pom.xml文件中手动引入,pom.xml文件查找依赖的顺序:先在本地仓库寻找,如果maven的本地仓库没有这个依赖, 就会到maven的中央仓库寻找这个依赖并下载将其放到本地仓库中供项目进行引用。

    4.maven自动创建目录骨架

      方式一:mvn archetype:generate 生成目录骨架 这种方式是按照提示进行选择

      方式二:mvn archetype:generate -DgroupId=组织名,公司网址的反写+项目名

                     -DartifactId=项目名-模块名

                     -Dversion=版本号

                     -Dpackage=代码所存在的包名

    5.maven的坐标和仓库

      坐标

                   构建

           仓库

                  本地仓库和远程仓库

            镜像仓库

            更改仓库位置

    6.maven的生命周期和插件

      完整的项目构建过程包括:

      清理、编译、测试、打包、集成测试、验证、部署

      Maven的生命周期:

      Clean 清理项目

              Pre-clean 执行清理前的工作

              Clean 清理上一次构建生成的所有文件

              Post-clean 执行清理后的文件

      Default 构建项目(核心)

              Compile test package install

      Site 生成项目站点

              Pre-site 在生成项目站点前要完成的工作

              Site 生成项目的站点文档

              Post-site 在生成项目站点后要完成的工作

              Site-deploy 发布生成的站点到服务器上

      Clean、compile、test、package、installl

    7.pom.xml常用元素解析

      1 <?xml version="1.0" encoding="UTF-8"?>
      2 <project xmlns="http://maven.apache.org/POM/4.0.0" 
      3         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      4         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
      5         http://maven.apache.org/xsd/maven-4.0.0.xsd">
      6         <!--指定了当前pom的版本-->
      7         <modelVersion>4.0.0</modelVersion>
      8         
      9         <groupId>反写的公司网址+项目名</groupId>
     10         <artifactId>项目名+模块名</artifactId>
     11         <!--第一个0表示大版本号
     12             第二个0表示分支版本号
     13             第三个0表示小版本号
     14             0.0.1
     15                 snapshot 快照版本
     16                 alpha 内部测试
     17                 beta 公测版本
     18                 release 稳定版本
     19                 GA 正式发布
     20         -->
     21         <version>0.0.1-SNAPSHOT</version>
     22         
     23         <!--打包方式
     24             默认是jar
     25             war zip pom
     26         -->
     27         <packageing></packageing>
     28         
     29         
     30         <!--项目描述名
     31             在产生项目文档是使用
     32         -->
     33         <name></name>
     34         <!--项目地址-->
     35         <url></url>
     36         <!--项目描述-->
     37         <description></dedication>
     38         <!--开发人员列表-->
     39         <developers></developers>
     40         <!--许可证的信息-->
     41         <licenses></licenses>
     42         <!--组织信息-->
     43         <organization></organization>
     44         
     45         <!--依赖列表-->
     46         <dependencies>
     47             <dependency>
     48                 <groupId></groupId>
     49                 <artifactId></artifactId>
     50                 <version></version>
     51                 <type></type>
     52                 <!--依赖的范围
     53                     默认的范围是compile
     54                     provides 只在编译和测试时运行
     55                     runtime
     56                     test
     57                     system
     58                     import
     59                 -->
     60                 <scope>test</scope>
     61                 <!--设置依赖是否可选
     62                     默认是false,子项目是继承的
     63                     如果是true,子项目必须显示的引入该依赖
     64                 -->
     65                 <optional></optional>
     66                 <!--排除依赖传递列表-->
     67                 <exclusions>
     68                     <exclusion>
     69                     </exclusion>
     70                 </exclusions>
     71             </dependency>
     72         </dependencies>
     73 
     74         <!--依赖的管理
     75             这里面的依赖不会被引入实际依赖中,它是供子模块继承用的
     76         -->
     77         <dependencyManagement>
     78             <dependencies>
     79                 <dependency>
     80                 </dependency>
     81             </dependencies>
     82         </dependencyManagement>
     83         
     84         <build>
     85             <!--插件列表-->
     86             <plugins>
     87                 <plugin>
     88                     <groupId></groupId>
     89                     <artifactId></artifactId>
     90                     <version></version>
     91                 </plugin>
     92             </plugins>
     93         </build>
     94         <!--子模块中对父模块pom的继承 -->
     95         <parent></parent>
     96         <!--用来聚合 -->
     97         <modules>
     98             <module></module>
     99         </modules>
    100 </project>

    8.依赖的范围

      ...

    9.依赖的传递

      ...

    10.依赖的冲突

      短路优先

      先声明先优先

    11.maven的聚合与继承

      ...

  • 相关阅读:
    P6Spy 监控JDBC详细配置说明
    apache mina2.0核心架构
    Window.open
    FLEX做的网站
    采用CSS让DIV在网页中水平垂直居中
    VSFTP成功安装访问被拒绝问题 500 OOPS: cannot change directory:/home/ftp
    SvnServe(1.7)服务器配置
    运行 Flash builder 4.5 弹出对话框 failed to create the java virtual machine 解决方法
    c++中的隐藏、重载、覆盖(重写)
    golang/net/http
  • 原文地址:https://www.cnblogs.com/a-yuan/p/9095083.html
Copyright © 2011-2022 走看看