美文网首页
Maven 笔记

Maven 笔记

作者: loneliness_ec7d | 来源:发表于2018-12-11 17:47 被阅读0次

maven 项目常用结构

src

    -main

        -java

            -package

    -test

        -java

            -package

    resources


maven 常用命令

maven -v 查看maven版本

maven compile 编译

maven test 测试

maven package 打包

maven clean 删除target

maven install 安装jar包到本地仓库

maven archetype:generate 按照提示创建目录

maven archetype:generate -DgroupID=组织名称(公司网址反写+项目名) -DartifactId=项目名-模块名 -Dversion=版本号 -Dpackage=代码所存在的包名

版本号命名习惯:

第一个0表示大版本号,第二个0表示分支版本号,第三个0表示小版本号。(0.0.1)

snapshot 快照版本, alpha 内部测试版本, alpha 公测版本, Release 稳定版本, GA 正式发布版本

eg:0.0.1snapshot


maven 概念

坐标

仓库(本地仓库和远程仓库)

镜像仓库


maven 生命周期

    clean 清理项目

         pre-clean 执行清理前的工作

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

        post-clean 执行清理后的文件

    default 构建项目(最核心)

        compile 编译

        test 测试

        package 打包

        install 安装

    site 生成项目站点

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

        site 生成项目的站点文档

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

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

POM.xml 文件元素介绍

    <project>

        <modelVersion>当前pom版本</modelVersion>

        <groupId>反写公司网址+项目名</groupId>

        <artifactId>项目名+模块名</artifactId>

        <version>版本号</version>

        <packaging>打包方式,默认jar</packaging>

        <name>项目描述名</name>

        <url>项目地址</url>

        <description>项目描述</description>

        <developers>开发人员</developers>

        <licenses>许可证</licenses>

        <organization>组织信息</organization>

        //依赖列表

        <dependencies>

            <dependency>

                <groupId></groupId>

                <artifactId></artifactId>

                <version></version>

                <type></type>

                <scope>依赖范围(6种)

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

                    provided:编译、测试时有效;

                    runtime:测试、运行时有效;

                    test:只在测试时有效(Junit);

                    system:编译、测试时有效,与本机系统相关联,可移植性差;

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

                </scope>

                <optional>设置依赖是否可选</optional> 

                <exclusions>//排除列表

                    <exclusion></exclusion>

                </exclusions>

            </dependency>

        </dependencies>

        //依赖管理,作为父类抽象子类继承,不会直接编译

        <dependencyManagement>

            <dependencies>

                <dependency></dependency>

            </dependencies>

        </dependencyManagement>

        <build>

            //插件列表

            <plugins>

                <plugin>

                    <groupId></groupId>               

                    <artifactId></artifactId>

                    <version></version>

                </plugin>

            </plugins>

        </build>

        <parent>继承父类</parent>

        <modules>用于聚合多个模块一起编译

            <module><module>

        </modules>

    </project>

依赖相关问题

    依赖传递

        多个项目传递依赖时,依赖的上层模块必须编译compile和安装install到本地仓库,依赖的下层模块才能正常编译。

    依赖冲突

        短路优先

            A -> B -> C -> X(1)

            A -> D -> X(2)

            上述两种情况,A模块依赖X的第二个版本。

        先声明优先

            A -> B -> X(1)

            A -> D -> X(2)

            上述情况,由于依赖路径长度相同,则看A中pom文件dependency中B和D声明的位置,如果B先声明,则A依赖X的第一个版本,反之依赖第二个版本。

相关文章

  • maven笔记-下载和setting设置

    maven笔记-下载和setting设置 maven官方网站:http://maven.apache.org/ 下...

  • Maven备忘

    Maven 笔记 https://www.yiibai.com/maven/enable-proxy-settin...

  • maven学习笔记

    maven学习笔记 2016年1月6日 一、maven安装 windows下maven安装安装maven前,首先要...

  • 关于 maven

    慕课网《项目管理利器——maven》笔记 项目管理利器 maven maven 是基于项目对象模型(POM),可以...

  • to Learn list

    maven B 笔记 spring IOC docBspring 笔记spring 常用注解 spring AOP...

  • <JavaWeb>Maven简介

    笔记总结自网易云课堂Maven课程 什么是Maven Maven是由Apache基金会出品的,使用JAVA编写的开...

  • Maven学习笔记

    阅读《Maven实战》许晓斌的一些笔记,便于自己和道友查阅 maven依赖 maven具有传递性依赖,比如 A 依...

  • springboot 01 Getting started

    Maven配置笔记Maven两种实现方式1. 使用parent,项目继承至 spring-boot-starter...

  • 自动化构建工具Maven

    该心得全部来源于菜鸟教程-maven以及尚硅谷Java视频教程_Maven的学习过程笔记。 Maven:一个纯Ja...

  • 跟着张博学习给开源项目修bug

    本文为硬核空间张博视频笔记 给maven修bug:maven3.6.1不能成功编译kotlin模块 https:/...

网友评论

      本文标题:Maven 笔记

      本文链接:https://www.haomeiwen.com/subject/fqnhvftx.html