Maven基本知识

Maven:

(1)管理依赖包(jar包)
    例如: 我们导入A.jar 如果A.jar依赖于B.jar 在导入A.jar时,Maven会帮我们导入B.jar
本地仓库:  本地设备上存放所有jar包的地方
中央仓库:  在远程服务器上存放jar包的地方
中央仓库镜像:
  导jar包的过程,先从中央仓库中查找,如果有,直接用,如果没有,从中央仓库中导出.
私服:公司塔建了一个服务器.在该服务器上存放一些常用的jar包,当从本地仓库查找不到,可以使用公司服务器上的jar包.
(2)将项目模块化
    在A项目中完成Dao层,在B项目中完成Service层,在C项目中完成表现层(UI)
    在实际开发中service要依赖于Dao, Controller依赖于Service.
  将Dao层所在的项目构建于本地仓库中,在Service层构建Dao的依赖包,在Service中可以使用Dao项目中的功能.
(3)Maven项目架构
 src
  main
   java——-java源文件
   resource—-资源文件和配置文件
  test
   java
   resource
(4)Maven的依赖配置
  POM(project object model)文件 ——-项目对象模块
  GAV(Group Id Artifact Id Version): 该项目Maven的坐标
  Maven——Installations
  Other mirrors: 镜像.
(5)Maven build: 构建到本地仓库中
  (1)依赖的有效性: test, compile, provided, System, runtime
  (2)依赖排除:(注意:除非肯定不使用,要不就使用依赖来排除)
      A.jar—>B.jar 我们只想依赖单独A.jar A[x.class,y.class] B[w.class,z.class]
  (3)依赖的传递性:
     A.jar–>B.jar–>C.jar只有当B.jar和C.jar的有效性为compile时,A.jar–>C.jar
   (4)依赖的整合:
      在Maven中整合MavenB MavenB install到本地仓库
   在MavenA的pom文件中依赖MavenB ,在MavenA中使用MavenB的功能.
(6)JDK版本的设置:

  <!-- 配置jdk环境,如果想统一环境,可以写入settings.xml里 -->
 <profiles>
   <profile>
      <id>development</id>
     <activation>
          <jdk>1.8</jdk>
        <activeByDefault>true</activeByDefault>
     </activation>
    <properties>
      <maven.compiler.source>1.8</maven.compiler.source>
      <maven.compiler.target>1.8</maven.compiler.target>
      <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
    </properties>
  </profile>
</profiles>

(7)统一版本的设置

  <!-- 统一属性设置 -->
  <properties>
        <!-- 字符编码配置 -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <!-- 全局版本配置 -->
       <project.junit>4.12</project.junit>
       <project.jdbc.connector>8.0.11</project.jdbc.connector>
        <!-- 名字随便起,下面用${name} 就可以使用值,有点类似el表达式 -->
        <!--  ${project.junit.version} -->
  </properties>
  <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>${project.junit}</scope>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${project.jdbc.connector}</version>
        </dependency>
 </dependencies>

(8)依赖原则
  (1)就近原则(最短冲突)
     例如: MavenA–>junit
       MavenA–> MavenB–>junit
  (2)如果在同一个pom文件中,配置了同一个依赖,按照”下面”的依赖引入
  (3)如果都是通过依赖其它的模块传递过来的jar包,按照”上面”的依赖引入
      例如: MavenA–>MavenB–>junit 4.0
        MavenA–>MavenC–> junit 4.12 谁先声明,按照谁来
(9)Maven继承
  (1)一般父工程packaging是pom
  (2)在子工程的pom配置

      <parent>
           父工程的gav 
         父工程的pom文件的相对路径
      </parent>        

  (3)并不是将父工程中所有的依赖都导入进来,需要用那些依赖,还需要子工程指定.
 指定的时候,只需要指定groupId 和 artifactId
(10)Maven的聚合(把各个模块聚合到一块)
(例如:dao层,service层,action层)将不同的模块/项目,聚合到一起.

猜你喜欢

转载自blog.csdn.net/zs1342084776/article/details/82082192
今日推荐