• maven(总)


    maven

    maven的简介

    • maven主要服务于基于java平台的项目构建,依赖管理和项目信息管理
      主要体现在项目和管理
      瀑布式开发:在做项目的时候要求有明确的需求,必须按照需求一步一步去做好规划,在项目的运行过程中严格的产出一些文档
      敏捷开发:首先将用户最关注的软件模型做出来(上线),再根据实际需要修改项目中的不足,然后再发布
    maven四大特性:
    • 依赖管理系统
      可以用groupid,artifactid,version组成的Coordination(坐标),唯一标识一个依赖,比如:
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>3.0.0</version>
            </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    任何基于maven构建的项目自身必须定义这三个属性,生成的 包可以是jar包,也可以是war包或者jar包

    groupid:定义maven项目隶属的实际项目-公司名称
    artifactid:该元素定义实际项目中的一个maven模块-项目名
    version:该元素定义maven项目当前所处的版本

    坐标属性的理解: maven坐标为各种组件引入了秩序,任何一个组件都必须明确的定义自己坐标。

    • 多模块构建
      将一个大的项目分成多个小的模块,使用标签来定义一组子模块。

    • 一致的项目结构
      maven统一了项目的目录结构,不管在eclipse还是在idea中 maven项目的目录结构是一样的

    • 一致的构建模型和插件机制

    • cmd下编译项目并运行
      在需要运行的项目根目录下打开cmd
      mvn compile(编译)
      显示build success 表示项目已经编译好了
      mvn exec:java -Dexec.mainClass=“xxx.Xxx”
      (这里mainClass需要写到包含main函数的类。例子当中,xxx是类的包名,Xxx类是main函数所在的类。)
      如果maven项目是第一次运行 可能运行时间比较慢

    如果编译失败 可能出现的问题:

    • 不是使用管理员权限的dos命令
    • jdk环境配置问题,重装jdk
    • 代码编写时,类里面没有设置包名(如果编译时类里面没加包名,执行时也不需要加包名)

    maven命令

    maven的命令格式如下:
    mvn [plugin-name]:[goal-name]
    mvn 表示maven命令,后面表示插件的名字:后面跟命令的名字

    mvn clean package -Dmaven.test.skip=true		 跳过单测打包
    mvn clean install -Dmaven.test.skip=true		 跳过单测打包,并把打好的包上传到本地仓库
    mvn clean deploy -Dmaven.test.skip=true			跳过单测打包,并把打好的包上传到远程仓库
    
    mvn -v 或者mvn -version //查看版本信息 
    mvn compile //编译源码 
    mvn clean //清除项目临时产生的文件
    mvn package //项目打包工具
    mvn deploy //将打包的文件发布到远程参考,供其他人员下载。
    mvn test-compile //编译测试代码 
    mvn test //测试命令
    mvn site //生成项目相关的网站 
    mvn archetype:create //创建 Maven 项目 
    mvn install //在本地 Repository 中安装 jar (将打包的jar包文件复制到你的本地库中,供其他模块使用)
    mvn -Dmaven.test.skip=true //忽略测试文档编译 
    mvn clean compile //将.java类编译为.class文件 
    mvn clean package //进行打包 
    mvn clean test //执行单元测试 
    mvn clean install //使其他项目使用这个jar,会安装到maven本地仓库中 
    mvn archetype:generate //创建项目架构 
    mvn eclipse:eclipse//将项目转化成eclipse项目
    mvn dependency:tree //打印出整个项目的依赖树
    mvn dependency:list //查看已解析依赖 
    mvn dependency:analyze //查看依赖的工具 
    mvn help:system //从中央仓库下载文件至本地仓库 
    mvn tomcat7:run//在tomcat容器中运行java项目
    mvn jetty:run//调用jetty插件的run目标在jetty Select容器中启动web应用
    mvn help:active-profiles //查看当前激活的profiles 
    mvn help:all-profiles //查看所有profiles 
    mvn help:effective -pom //查看完整的pom信息
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    在需要运行的项目根目录下打开cmd运行mvn命令

    -D传入属性参数

    例如:mvn clean package -Dmaven.test.skip=true,
    以-D开头,将maven.test.skip的值设置为true,就是告诉maven打包的时候,跳过单元测试,同理,mvn clean deploy -Dmaven.test.skip=true表示部署项目的时候跳过单元测试

    -P:

    使用指定的Profile配置

    maven仓库:

    对于maven来说:maven分为本地仓库和远程仓库。
    首先会查看本地仓库,如果本地仓库没有,则会去远程仓库查找。
    远程仓库分为三种:中央仓库,私服,其他公共库
    中央仓库是默认配置下,maven下载jar包的地方(下载比较慢)
    私服:局域网内假设一个私有的仓库服务器,用其代理所有所有外部的远程仓库,内部的项目还能部署到私服上,供其他项目使用。公司内部应该使用私服,优点:

    • 节省自己的外网宽带
    • 加速maven构建
    • 部署第三方控件
    • 提高稳定性
    • 降低中央仓库的负荷

    其他公共库:
    常用阿里云仓库

    maven的打包操作:

    java项目产生jar包,web项目产生war包
    对于每个环境下的项目打包,对应的项目所需要的配置资源都会有所区别,可以通过ant 或者idea自带的打包功能实现打包,但是当项目很大,并且需要的外界配置很多的时候,此时的打包服务就会很复杂,对于maven项目而言,可以通过pom.xml配置的方式,来实现打包的环境选择,相比较其他形式的打包工具,通过maven只需要通过简单的配置,就可以轻松完成不同环境下项目的整体打包。

    • 第一步:建立相对应的目录结构
      在这里插入图片描述
    • 第二步
      配置好properties 文件,,,打开打开控制台 :
      在这里插入图片描述
    • 第三步 输入mvn命令
      在这里插入图片描述
      clean 清除 compile编译,package 打包 -p去找profile里的id
  • 相关阅读:
    java基于springboot+vue的在线点餐外卖系统 elementui
    数据分析---Python与sql
    二维码智慧门牌管理系统升级解决方案:要素类型
    vcpkg 安装zlib 错误 build fail的解决方案
    从零基础到精通Flutter开发:一步步打造跨平台应用
    Sqlmap 22.05.23.05
    测试经验总结
    [0x0] 校长留的开放问题作业
    Java实现就医保险管理系统 JAVA+Vue+SpringBoot+MySQL
    A星(A*、A Star)路径规划算法详解(附MATLAB代码)
  • 原文地址:https://blog.csdn.net/weixin_58036127/article/details/132304923