Maven笔记

Maven基础
  Maven是一个开源项目、用于构建项目、依赖管理
  坐标:Apache(公司名称)+struts2(项目名称)+2.3.24(版本信息) -- > struts2-core-2.3.24.jar


1.maven的好处
  同样的代码,实现功能一样,maven的大小比较小,项目中没有依赖jar包,通过maven配置管理
  Maven项目中需要一个jar包,只需要在Maven项目中配置jar包坐标信息,其实就是依赖管理
  Maven项目配置具有继承关系

2.maven的好处如何实现
  两大核心:1.依赖管理 2.项目构建
  项目构建:编译、测试、打包、部署
  web项目启动mvn命令:mvn tomcat:run

3.maven安装、配置本地仓库

安装:
  maven程序属于java开发,需要依赖JDK
  官网下载maven的jar包,解压后,配置环境变量
  mvn -v //查看安装信息

  仓库类型:本地仓库、私服仓库、中央仓库

本地仓库配置:

  maven/conf/settings.xml文件
  <localRepository>:参数指定本地仓库路径

4.maven项目标准目录结构
  项目名称:
    .settings
    src:项目源码
      main
        java:java代码
        resources:项目配置文件
        webapp:
          image:图片
          css:样式
          jsp:页面文件
          WEB-INF
            web.xml:web项目配置文件
          index.jsp:首页
      test
        java:单元测试类
        resources

    target:源码编译后的代码输出
    .classpath
    .project
    pom.xml:maven项目配置核心文件

5.mavne的常用命令
  mvn命令运行的其实就是maven的jar包(插件jar包)

  mvn clean:清理项目根目录下的target //maven-clean-plugin(插件jar包)
  mvn compile:编译项目,生成target包 //mavne-compile-plugin
  mvn test:执行单元测试类(xxxxTest.java,必须以Test结尾) //src/test/java
  mvn package:根据pom.xml文件配置生成jar包或web包,生成路径:target
  mvn install:打包并存放到本地仓库 //根据settings配置文件的路径
  mvn deploy:打包上传到私服

  生命周期:mvn命令的执行流程,后面的命令会默认执行前面的命令

6.maven整合web项目案例
  1.Eclipse中的m2e插件中可以使用maven创建项目
    Help-->Eclipse--> Marketplace搜索maven插件Maven Integration for Eclipse安装即可
  2.配置maven程序安装路径
    Preferences-->Maven-->Installations
  3.指定配置文件(settings.xml)
    Preferences-->Maven-->User Settings
  4.构建仓库索引(提高仓库速度)
    show view-->maven Repository
    在本地仓库里,右键-->Rebuild Index

7.工程创建
  Maven Project :普通maven项目或父工程
  maven-archetype-quickstart:jar工程
  maven-archetype-webapp:web工程
  Maven Module:子工程

8.pom.xml配置JDK编译版本
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
          <encoding>UTF-8</encoding>
        </configuration>
      </plugin>
    </plugins>
  </build>

9.依赖范围
  如果使用到tomcat自带的jar包,避免部署运行时冲突,需要将依赖关系设置为:provided
  调试运行:需要添加源码 Debug As --> Source --> add --> project --> 选择项目

  传递依赖冲突
    A依赖B , B依赖C ,C就是A的传递依赖, B就是A的直接依赖

  依赖原则:
    顺序优先原则:pom.xml配置中的依赖配置顺序靠前优先

  路径原则:直接依赖优先于传递依赖

  排除原则:在直接依赖中,排除指定传递依赖(Exclude Maven ArtifactId)

  版本锁定:直接锁定版本
    <properties>
      <spring.version>1.1.0</spring.version>
      <xxx.xxx>xxx</xxx.xxx>
    </properties>

    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>...</groupId>
          <artifactId>...</artifactId>
          <version>${spring.version}</version>
        </dependency>
      </dependencies>
    </dependencyManagement>

原文地址:https://www.cnblogs.com/chenyongsai/p/9703815.html