美文网首页
Maven 入门教程

Maven 入门教程

作者: 分布式与微服务 | 来源:发表于2022-10-09 09:13 被阅读0次

    下载安装

    环境变量配置

    • 依赖 Java,需要配置 JAVA_HOME
    • 配置 MAVEN_HOME
    • 测试:mvn

    配置

    更改本地仓库位置

    • settings.xml

      <localRepository>仓库位置</localRepository>
      
      

    镜像仓库配置

    • setting.xml

          <mirror>
            <id>aliyunmaven</id>
            <mirrorOf>central</mirrorOf>
            <name>aliyun</name>
            <url>https://maven.aliyun.com/repository/public</url>
          </mirror>
      
      

    Maven 命令

    • 编译命令:mvn compile
    • 清理命令:mvn clean
    • 测试命令:mvn test
    • 打包命令:mvn package
    • 安装到本地仓库:mvn install

    Maven 工程

    插件创建工程

    • 创建工程

      mvn archetype:gengrate
          -DgroupId={project-packaging}
          -DartifactId={project-name}
          -DarchetypeArtifactId=maven-archetype-quickstart
          -DinteractiveMode=false
      
      
    • 创建 Java 工程

      mvn archetype:generate -DgroupId=com.ruochen -DartifactId=java-project -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=0.0.1-snapshot -DinteractiveMode=false
      
      
    • 创建 web 工程

      mvn archetype:generate -DgroupId=com.ruochen -DartifactId=web-project -DarchetypeArtifactId=maven-archetype-webapp -Dversion=0.0.1-snapshot -DinteractiveMode=false
      
      

    IDEA 创建 Maven 工程

    • 创建一个 Empty Project
    • 在 settings 中修改为自己的路径
    • 创建一个 maven module

    骨架创建 Maven 工程

    • new module

    Web 工程

    • new module

    依赖管理

    • 依赖传递

      • 直接依赖:在当前项目中通过依赖配置建立的依赖关系
      • 间接依赖:被资源的资源如果依赖其他资源,当前项目间接依赖其他资源
    • 依赖传递冲突问题

      • 路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高
      • 声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的
      • 特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的
    • 依赖范围
    • 依赖范围传递性

    生命周期与插件

    构建项目生命周期

    • clean:清理工作
      • pre-clean:执行一些需要在clean之前完成的工作
      • clean:移除所有上一次构建生成的文件
      • post-clean:执行一些需要在clean之后立刻完成的工作
    • default:核心工作,例如编译、测试、打包、部署等
    • site:产生报告,发布站点等

    插件

    • 插件与生命周期内的阶段绑定,在执行到对应的生命周期时执行对应的插件功能

    • 默认maven在各个生命周期上绑有预设的功能

    • 通过插件可以自定义其他功能

    • eg

      <build>
          <plugins>
              <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-source-plugin</artifactId>
                  <version>2.2.1</version>
                  <executions>
                      <execution>
                          <goals>
                              <goal>jar</goal>
                          </goals>
                          <phase>generate-test-resources</phase>
                      </execution>
                  </executions>
              </plugin>
          </plugins>
      </build>
      

    相关文章

      网友评论

          本文标题:Maven 入门教程

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