美文网首页
Maven入门

Maven入门

作者: iDevOps | 来源:发表于2019-09-18 18:45 被阅读0次
    Maven是什么
    1. 一个项目管理工具
    2. 对项目中的jar包进行依赖管理
    3. 对项目的一键构建
    Maven安装
    1. 依赖JDK1.7+
    2. 下载Maven, 下载地址
    3. 配置maven环境变量
    4. 查看Maven版本号, mvn -v
    5. 修改本地仓库地址和添加阿里镜像
    # apache-maven-3.6.1\conf\settings.xml
    
    <?xml version="1.0" encoding="UTF-8"?>
    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    .....
    <localRepository>G:\本地仓库地址</localRepository>
    .....
     <mirror>
          <id>nexus-aliyun</id>
          <mirrorOf>central</mirrorOf>
          <name>Nexus aliyun</name>
          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        </mirror>
        <mirror>
          <id>nexus-aliyun-thirdparty</id>
          <mirrorOf>thirdparty</mirrorOf>
          <name>Nexus aliyun thirdparty</name>
          <url>http://maven.aliyun.com/nexus/content/repositories/thirdparty/</url>
        </mirror>
      </mirrors>
    .....
    </settings>
    
    Maven常用命令
    • compile
      maven工程的编译命令,作用是将src/main/java下的文件编译为class文件输出到target目录下
    mvn compile
    
    • test
      maven工程的测试命令,会执行src/test/java下的单元测试类
    mvn test
    
    • clean
      清理命令,会删除target目录及内容
    maven clean
    
    • package
      打包命令,对java工程执行package打成jar包,对web工程打成war包
    mvn package
    
    • install
      安装命令,将maven工程打包成jar或war包,并发布到本地仓库
    mvn install
    
    • 项目的生命周期
      项目构建包括:清理、编译、测试、报告、打包、部署
    pom.xml

    每一个maven工程都有一个pom.xml文件,通过pom.xml文件定义项目的坐标、项目依赖、项目信息、插件目标等。

    • 依赖范围 <scope>provided</scop>
      compile: 编译范围,指 A 在编译时依赖 B,此范围为默认依赖范围。编译范围的依赖会用在编译、测试、运行,由于运行时需要所以编译范围的依赖会被打包。
      provided:provided 依赖只有在当 JDK 或者一个容器已提供该依赖之后才使用, provided 依 赖在编译和测试时需要,在运行时不需要,比如:servlet api 被 tomcat 容器提供。
      runtime:runtime 依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如:jdbc的驱动包。由于运行时需要所以 runtime 范围的依赖会被打包。
      test:test 范围依赖 在编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用,比如:junit。由于运行时不需要所以 test范围依赖不会被打包。
      system:system 范围依赖与 provided 类似,但是你必须显式的提供一个对于本地系统中 JAR
      文件的路径,需要指定 systemPath 磁盘路径,system依赖不推荐使用。

    相关文章

      网友评论

          本文标题:Maven入门

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