• Maven学习笔记


    命令及解释

    mvn -v 查看maven版本

    mvn compile 编译

    mvn test 测试

    mvn package 打包

     

    mvn clean 删除target

    mvn install 安装jar包到本地仓库

     

    创建工程目录时使用archetype插件,两种方式创建

     

    1、mvn  archetype:generate 按照提示进行选择

          注意:版本选择1.1

                     项目版本号输入1.0.0SNAPSHOT

    2、mvn archetype:generate -DgroupId=公司项目反写+项目名

                                                 -DartifactId=项目模块名

                                                 -Dversion=版本号

                                                 -Dpackage=代码所存在的包名

    坐标

          构件

    仓库

         本地仓库和远程仓库

    镜像仓库     

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

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

    maven将上面的额过程进行了抽象

    clean compile test package install

    maven生命周期:

    clean 清理项目

    default 构成项目

    site 生成项目站点

     

    clean清理项目

      pre-clean 执行清理前 的工作

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

    default构建项目(最核心)

      compile  test  package  install

    site

     

     

     
    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/maven-v4_0_0.xsd">

    <!--指定了父项目的信息-->
    <parent>
    <artifactId>exam</artifactId>
    <groupId>com.qunar.fresh2017.exam</groupId>
    <version>1.0-SNAPSHOT</version>
    </parent>

    <!--指定多个模块,进行一起编译-->
    <!--<modules>
    <module>

    </module>
    </modules>-->


    <!--指定当前pom的版本-->
    <modelVersion>4.0.0</modelVersion>
    <!--坐标信息,定义当前模块的标示-->
    <artifactId>Mybatis_ZhangRuihao</artifactId>
    <!--
    默认打包方式是jar
    还有warzippom

    -->
    <packaging>war</packaging>
    <!--
    一般由三个数字组成
    第一个0表示大版本号
    第二个0表示分支版本号
    第三个0表示小版本号

    一般形式:0.0.1SNAPSHOT
    SNAPSHOT快照
    alpha内部测试
    beta公测
    Release稳定
    GA正式版本

    <version>版本号</version>
    -->
    <!--项目描述名-->
    <name>Mybatis_ZhangRuihao Maven Webapp</name>

    <!--项目地址-->
    <url>http://maven.apache.org</url>

    <!--
    项目描述
    <description></description>
    -->
    <!--
    开发人员信息
    <developer></developer>
    -->
    <!--
    许可证信息
    <licenses></licenses>
    -->
    <!--
    组织信息
    <organization></organization>
    -->

    <!--
    <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope> 指明只在测试文件夹下有用
    <optional></optional> 设置依赖是否可选,默认是false,如果是true,必须显示的引入该依赖
    <exclusions> 排除依赖传递列表,比如a依赖bb依赖c,那么c对于a来说就是传递依赖,如果a不想依赖c,就可以使用这个标签
    <exclusion>
    </exclusion>
    </exclusions>
    </dependency>
    -->

    <!--并不会真正运行,用于定义在父模块中,让子模块继承用的--> <!-- <dependencyManagement> <dependencies> <dependency> <groupId></groupId> <artifactId></artifactId> </dependency> </dependencies> </dependencyManagement>--> <!--对构建行为提供相应的支持--> <build> <!--插件列表--> <!--<plugins> <plugin> <groupId></groupId> <artifactId></artifactId> <version></version> </plugin> </plugins>--> <finalName>Mybatis_ZhangRuihao</finalName> </build></project>
    依赖范围 

    <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope> 指明只在测试文件夹下有用
    </dependency>

    Dependency Scope

    compile :默认的范围,编译、测试、运行都有效

    provided :在编译和测试时有效

    runtime:在测试和运行时都有效

    test:只在测试范围有效

    system:与provided一样,在编译和测试时有效,不过它与系统相关联,可移植性差

    import:导入的范围,它只使用在dependencyManagement中,表示从其它pom中导入dependency的配置

    依赖冲突时有两条原则

    1、短路优先

    A->B->C→X(jar)

    A->D->X(jar)

    这时候A就引用下面的一个X

     

    2、先声明先优先

    如果路径长度相同,则谁先声明,先解析谁

    Maven中Tomcat插件


    <!-- 添加tomcat7-maven插件 -->

    <build>
    <finalName>spring</finalName>
    <plugins>
    <plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
    <port>8080</port>
    <path>/</path>
    <uriEncoding>UTF-8</uriEncoding>
    </configuration>
    </plugin>
    </plugins>
    </build>
  • 相关阅读:
    二分使用条件 + 代码模板
    Codeforces Round #710 (Div. 3) Editorial 1506A
    Cf #709 Div. 2 B. Restore Modulo 一个只有三千多人过的b题, 妙啊!
    牛客网 第十八届浙大城市学院程序设计竞赛(同步赛)J--万万没想到 啦啦啦啦啦
    Codeforces Round #707 (Div. 2)A.英语漏洞 + C.Going Home C题收获不小
    Codeforces Round #706 (Div. 2)B. Max and Mex __ 思维, 模拟
    Codeforces Round #705 (Div. 2) B. Planet Lapituletti(镜像时钟) 思维
    位运算
    Edu Cf Round 105 (Div. 2) B. Berland Crossword 1.读懂题, 2. 思维
    Codeforces Round #703 (Div. 2)__ B. Eastern Exhibition__ 纯纯的思维
  • 原文地址:https://www.cnblogs.com/haolnu/p/7359054.html
Copyright © 2020-2023  润新知