前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Maven知识点速查

Maven知识点速查

作者头像
linxinzhe
发布2018-04-10 15:14:10
7850
发布2018-04-10 15:14:10
举报
文章被收录于专栏:林欣哲林欣哲

本文是学习项目管理利器——maven的Maven知识点速查

前置知识:无

Maven常用命令

  • compile 编译src/main/java文件
  • test 运行src/test/java下的带@Test的测试文件
  • package 打包src/main/java到target目录下生成jar包
  • install 打包并把jar包拷贝到本地仓库.m2下
  • deploy 打包并把jar包拷贝发布到远程仓库

Maven命令行创建目录骨架

  • mvn archetype:generate

Maven中的坐标和仓库

  • 构件通过坐标作为ID
  • 坐标包含
    • groupId
    • artifactId
    • Version
  • 仓库:
    • 本地仓库
    • 远程仓库

Maven生命周期和插件

生命周期:是一种工程的抽象

  • clean 清理
    • pre-clean
    • clean
    • post-clean
  • default 构建(最核心)
    • compile
    • test
    • package
    • install
  • site 生成站点
    • pre-site
    • post-site
    • site-deploy 发布站点 插件:是对生命周期的实现 使用插件
代码语言:javascript
复制
<build>
    <plugins>
        <groupId>xxx</groupId>
        <artifactId>xxx</artifactId>
        <version>xxx</version>
        <executions>
            <phase>package</phase> <!-- 生命周期那个阶段 -->
            <goals>
                <goal>jar-no-fork</goal><!--做什么事-->
            </goals>
        </executions>
    </plugins>
</build>

Maven的pom.xml结构的解析

代码语言:javascript
复制
<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">
    <modelVersion>4.0.0</modelVersion> <!--固定搭配 -->
    <groupId>反写的公司网址+项目名</groupId>   <!-- 坐标 -->
    <artifactId>项目名+模块名(项目中的一个模块)</artifactId>
    <packaging>jar</packaging> <!-- 打包,jar、war、zip、pom -->
    <version>1.0-SNAPSHOT</version>
    <!-- 0.x.x 表示大版本
    x.0.x 分支版本
    x.x.0 小版本
    0.0.1snapshot 快照 
    alpha 内测
    beta 公测
    release 稳定
    GA 正式发布 -->

    <name></name> <!--文档用-->
    <url></url> <!-- 项目地址 -->
    <description></description>
    <developers></developers>
    <lincences></lincences>
    <organization></organization>


    <denpendencies>
        <denpendency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.5.2.RELEASE</version>
            <type></type>
            <scope>test</scope>
            <optional></optional> <!-- 设置依赖是否可选 -->
            <exclusions><!-- 排除依赖,比如A->B->C,而A不想依赖C -->
                <exclusion>
                </exclusion>
            </exclusions>
        </denpendency>
    </denpendencies>

    <!-- 依赖管理,用在父模块中供继承用, -->
    <dependencyManagement>
        <denpendencies>
            <dependency></dependency>
        </denpendencies>
    </dependencyManagement>

    <build>
        <!-- 插件列表 -->
        <plugins>
            <plugin>
                <groupId></groupId>
                <artifactId></artifactId>
                <version></version>
            </plugin>
        </plugins>
    </build>

    <!-- 继承 -->
    <parent></parent>
    <!-- 模块 -->
    <modules>
        <module>
        </module>
    </modules>

Maven依赖范围

test

  1. compile 默认编译和运行都有效
  2. test 测试
  3. runtime 运行和测试时有效
  4. provided 编译和测试有效
  5. import 只用在dependencyManagement中,表示从其他pom导入dependency的配置

Maven依赖传递

A->B->C,则A间接依赖C,A中会引入C的jar包,可以排除依赖用,则C不见了

Maven依赖冲突,则看规则

  1. 短路优先
    • A->B->C-X(jar) 不选这条
    • A->D->X(jar) ✅
  2. 先声明先优先:如果路径长度相同,则谁先声明,先解析谁

Maven的聚合和继承

聚合:继承:

Maven的构建web项目

在里使用坐标标记的jetty或tomcat插件

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 林欣哲 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Maven常用命令
  • Maven命令行创建目录骨架
  • Maven中的坐标和仓库
  • Maven生命周期和插件
  • Maven的pom.xml结构的解析
  • Maven依赖范围
  • Maven依赖传递
  • Maven依赖冲突,则看规则
  • Maven的聚合和继承
  • Maven的构建web项目
相关产品与服务
项目管理
CODING 项目管理(CODING Project Management,CODING-PM)工具包含迭代管理、需求管理、任务管理、缺陷管理、文件/wiki 等功能,适用于研发团队进行项目管理或敏捷开发实践。结合敏捷研发理念,帮助您对产品进行迭代规划,让每个迭代中的需求、任务、缺陷无障碍沟通流转, 让项目开发过程风险可控,达到可持续性快速迭代。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档