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>

任何基于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信息

在需要运行的项目根目录下打开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只需要通过简单的配置,就可以轻松完成不同环境下项目的整体打包。

  • 第一步:建立相对应的目录结构
    maven(总)_第1张图片
  • 第二步
    配置好properties 文件,,,打开打开控制台 :
    maven(总)_第2张图片
  • 第三步 输入mvn命令
    maven(总)_第3张图片
    clean 清除 compile编译,package 打包 -p去找profile里的id

你可能感兴趣的:(maven,java)