暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Jar包管理----Maven

IRONIC Bo 2021-06-28
688

    

    对于上手过Java开发的同志们来说,jar包的管理和下载是比较麻烦的事情,但是在现在有一个Apache的Maven-jar包管理利器,对于开发微服务和其他大型的开发环境来说,是一个非常好用的工具,当然也需要了解相应的使用方法哦。

    

    首先安装配置之后,运行mvn -v查看是否安装成功:

    


  1. maven的目录结构


    一个新的Maven项目主要包含以下的文件



    src 
    -main
    -java
    -package
    -test
    -java
    -package
    resources
    pom.xml




    2.maven的命令



    使用以下的命令构件相应的java项目



      mvn -v  查看maven版本
      compile 编译
      test 测试
      package 打包
      clean 删除target
      install 安装jar包到本地的仓库中




      创建目录的两种方式
      1.archetype:generate 按提示输入
      2.archetype:generate -DgroupId=(一般)组织.公司网址的反写 + 项目名
      -DartifactId=项目名-模块名
      -Dversion=版本号 (1.0.0SNAPSHOT)
      -Dpackage=代码所在的包名




      3.maven的生命周期




      下面是主要的Maven构建项目的生命周期



        clean 清理项目
        pre-clean 执行清理前的工作
        clean 清理上一次构件生成的所有文件
        post-clean 执行清理后的文件
         default 构建项目(核心)
        compile test package install
         site 生成项目站点
        pre-site 在生成项目站点前要完成的工作
        site 生成项目的站点文档
        post-site 在生成项目站点后要完成的工作
        site-depoly 发布生成的站点到服务器上





        4.pom.xml的文件概览



          <project>写入约束信息
          <model></model>指定当前的pom的版本
          <groupId></groupId>反写的公司网址 + 项目名
          <artifactId></artifactId>项目名 + 模块名
          <version></version>第一个0表示大版本号,第二个0表示分支版本号,第三个0表示小版本号0.0.1
          snapshot 快照
          alpha 内测
          beta 公测
          Release 稳定
          GA 正式发布
          <package></package>打包方式 默认是jar
          <name></name>项目描述名
          <url></url>项目地址
          <description></description>项目描述
          <licenses></licenses>许可证
          <developers></developers>开发者信息
          <organization></organization>组织名
          <dependencies>
          <dependency>
          <groupId></groupId>坐标
          <artifactId></artifactId>坐标
          <version></version>坐标
          <type></type>
          <scope>
          compile默认编译测试运行都有效
          provided在编译和测试时候有效
          runtime测试运行时候有效
          test在测试时候有效
          system在编译和测试时候有效,与本机系统相关,可移植性差
          import导入的范围,只使用在dependencyManagenment中,表示从其他的pom中导入dependency的配置</scope>依赖的范围
          <optional></optional>设置依赖是否可选 默认为false(可继承) true 必须显示的引入依赖
          <exclusions>
          <exclusion></exclusion>排除依赖传递列表
          </exclusions>
          </dependency>
          </dependencies>
          <dependencyManagenment>
          <dependencies>
          <dependency></dependency>一般定义在父模块中,供给子模块继承使用
          </dependencies>
          </dependencyManagenment>
          <build>给构件行为提供支持
          <plugins>
          <plugin>插件
          <groupId></groupId>坐标
          <artifactId></artifactId>坐标
          <version></version>坐标
          </plugin>
          </plugins>
          </build>
          <parent></parent>继承
          <modules>模块
          <module></module>
          </modules>
          </project>









          5.其他的进阶使用



            依赖的传递
            依赖的排除
            <exclusions>
            <exclusion></exclusion>
            </exclusions>




            依赖的冲突
            短路优先 优先解析路径短的版本
            先声明先优先




            聚合和继承
            聚合:一起打包运行 modules
            继承:继承父类的pom,父模块的打包方式必须为pom,否则无法构建项目<parent></parent>


            文章转载自IRONIC Bo,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

            评论