mvn学习笔记

    Maven一个跨平台的项目管理工具(跨平台的,对外提供了一致的操作接口)
    用途: 1.服务于构建,自动化构建过程,从清理、编译、测试到生成报告,再到打包和部署。还能够抽象构建过程,提供构建任务实现
               2.依赖管理工具(坐标)和项目信息管理工具(通过Maven自动生成的站点,以及一些已有的插件,我们还能够轻松获得 项目文档测试报告静态分析报告源码版本日志报告等非常具有价值的项目信息)。
               3.为java提供一个免费的中央仓库,可以找到任何的流行开源类库。

    IDE:如eclipse,NetBeans

    Make:最早的构建工具,由一个名为Makefile的脚本文件驱动,该文件使用Make自定义的语法格式,通过一系列目标和依赖将整个构建过程串联起来,同时利用本地命令完成每个目标的实际行为。优点:可以利用所有系统的本地命令。缺点:将自己和操作系统绑定在一起,不能实现(很难)跨平台的构建。语法问题
    Ant:最早用力啊构建Tomcat,可以看成一个Java版本的Make


    ¥M2_HOME/conf/settings.xml是针对整台机器上的所有用户,而~/.m2/settings.xml是用户范围内的

    
    Maven的核心文件pom.xml文件

        1.project是所有pom.xml的根元素,声明了一些POM相关的命名空间及xsd元素,能够帮助我们快速编译POM
        2.modelVersion指定了当前POM模型的版本         
        3.接下来最重要的是group,artifactId和version,这三个元素定义了一个项目基本的坐标
                group定义了项目属于哪个组,这个组往往和项目所在的组织或公司存在关联
                artifactId定义了当前Maven项目在组中的唯一ID
                version指定了项目的版本
        5.packaging    定义了Maven项目的打包方式    eg:jar|war        默认是jar
        6.name声明了一个对于用户更为友好的项目名,不是必须的,但方便交流
        注意:一般来说,项目中java类的包都应该基于项目的groupId和artifactId。这样更加清晰,更加符合逻辑,也方便搜索构建或者java类
        7.dependencies元素,该元素下可以包含多个dependency元素,以声明项目的依赖
                dependency标签下通过groupId,artifactId和version指定jar包(必须),
                scope为依赖范围,若为test,则表示该依赖支队测试有效,换句话测试代码中没有import Junit代码是没问题的,但如果主代码中用到,则编译错误,如果不声明,那么默认值为compile,表示主代码和测试代码都有效,compile,编译依赖范围,provided,已提供依赖范围(编译时代码无效),runtime,运行时依赖范围,system,系统依赖范围.....
                type    依赖的类型,对应项目坐标定义的packaging,默认值为jar
                optional    标记依赖是否可选
                exclusions    用来排除传递性依赖
        

注意: 1.借助maven-shade-plugin插件,项目打包时,会将该信息放到MANIFEST文件中eg:Main-Class:com.zprk.helloworld.HelloWorld
           2. compiler插件配置支持编译的java版本
           3.通过settings下的localRepository设置自定义仓库

    Maven命令
        1.clean:clean    告诉Maven清理输出目录target(默认情况下,Maven构建的所有输出都在target/目录中)
        2.compile:compile    告诉Maven编译项目主代码
        3.test    测试
        4.package    打包
        5.install    将项目输出的jar安装到Maven本地仓库中,可以在相应的文件夹看到项目的pom和jar
        6.archetype:generate    命令创建项目的骨架
        7.mvn dependency:tree    查看当前项目的依赖树
        8.mvn dependency:list    查看当前项目的已解析依赖
        9.mvn dependency:analyze    分析当前项目的依赖    (主要看:Unused declared dependencies 项目中未使用的,但显示声明的依赖)
        10. mvn package  -Dmaven.test.skip=true 跳过测试打包
        11.mvn dependency:sources

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值