zoukankan      html  css  js  c++  java
  • Maven整理

    第一章 Maven安装

    1.1 下载Maven库

    下载地址:http://maven.apache.org/download.cgi

    1.2 解压下载的库,认识Maven库目录

    1. 备注: 解压文件尽量不要放在含有中文或者特殊字符的目录下。
    2. bin:含有mvn运行的脚本
    3. boot:含有plexus-classworlds类加载器框架
    4. conf:含有settings.xml配置文件
    5. lib:含有Maven运行时所需要的java类库
    6. LICENSE.txt, NOTICE.txt, README.txt针对Maven版本,第三方软件等简要介绍

    1.3 配置Maven环境变量

    1.右键我的电脑(或者计算机)-属性-高级系统设置-高级-环境变量-系统变量-新建MAVEN_HOME,只为maven的安装目录
    2.把%MAVEN_HOME%in;追加到Path变量的值后面
    3.检验是否成功:cmd-> mvn -v
    4.修改配置文件:maven安装目录下conf目录中settings.xml

    1.4 Maven配置文件(settings.xml)具体说明

      1.localRepository:设置本地仓库:<localRepository>C:software
    epository</localRepository>
        2.pluginGroups:插件组合
        3.proxies:代理
        4.servers服务器(其中username和password是私服的用户名和密码,后续配置私服说明)
              <server>
                  <id>user-releases</id>
                  <username>admin</username>
                  <password>wangwujuan</password>
              </server>
              <server>
                  <id>user-snapshots</id>
                  <username>admin</username>
                  <password>wangwujuan</password>
              </server>
        5.mirrors:镜像路径
           <!-- 阿里镜像 -->
             <mirror>
                <id>alimaven</id>
                <name>aliyun maven</name>
                <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
                <mirrorOf>central</mirrorOf>        
            </mirror>
        6.profiles:服务器配置
         <!--服务器的配置-->
            <profile>
                <id>nexusProfile</id>
                <repositories>
                    <repository>
                        <id>nexus</id>
                        <name>nexus</name>
                        <url>http://localhost:8081/nexus/content/groups/public/</url>
                        <releases>
                            <enabled>true</enabled>
                        </releases>
                        <snapshots>
                            <enabled>true</enabled>
                        </snapshots>
                    </repository>
                </repositories>
                 <pluginRepositories>  
                      <!-- 插件仓库,maven的运行依赖插件,也需要从私服下载插件 -->
                      <pluginRepository>  
                            <!-- 插件仓库的id不允许重复,如果重复后边配置会覆盖前边 -->
                            <id>public</id>  
                            <name>Public Repositories</name>  
                            <url>http://localhost:8081/nexus/content/groups/public/</url>  
                      </pluginRepository>  
                  </pluginRepositories>  
            </profile>
        <!-- java编译插件,配jdk的编译版本-->
            <profile>    
                  <id>jdk-1.8</id>    
                  <activation>    
                        <activeByDefault>true</activeByDefault>    
                       <jdk>1.8</jdk>    
                    </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> 
        7.activeProfiles:激活私服 
                  <activeProfiles>
                      <activeProfile>nexusProfile</activeProfile>
                  </activeProfiles>
    View Code

    1.5 Maven仓库说明

    1.本地仓库:存储在本地磁盘,默认在系统盘c盘 用户名/.m2/xx
    通过settings.xml 更改本地仓库localRepository
    2.远程仓库:一般都使用国内镜像或者公司自己搭建私服. 一般用Nexus
    目的:加快下载速度
    私服存在的意义:开发者电脑更新,本地仓库就有jar。目前常用的就是阿里镜像
    3.Maven(中央)仓库:Maven团队维护的jar包仓库 http://repo1.maven.org/maven2/
    一般用这个查POM:http://mvnrepository.com/

    检索顺序:先检索本地仓库--再检索远程仓库--最后检索中央仓库

    1.6 Maven管理项目周期

    1. Clean:项目构建前的清理操作
    2. Default: 核心生命周期核心过程:编译,运行,打包等等
    3. Site:发布站点,生成报告等等,

    第二章 创建Maven项目

    2.1 Maven项目说明

          src/main/java:存放项目的.java文件
          src/main/resources:存放项目资源文件。如何Spring,Hibernate配置文件
          src/test/java:存放所有测试的.java文件.如Junit测试类
          src/test/resources:测试资源文件
          target:项目数出位置(可以自动生成)
          pom.xml(maven项目核心配置文件)
          
     pom.xml默认内容介绍:
            <!-- maven中model的版本号 -->
            <modelVersion>4.0.0</modelVersion>
            <!-- 公司名称或组织名称或者个人名称 -->
            <groupId>com.sky</groupId>
            <!--项目名称 -->
            <artifactId>FirstMaven</artifactId>
            <!-- 版本号  -->
            <version>1.0</version>
            <!-- 打包方式 :项目类型
            POM:MAVEN项目,常用在继承和聚合上
            JAR:JAVASE项目,没有网页,跟服务器没关系
            WAR:JAVAEE项目,跟服务器没关系-->
            <packaging>war</packaging>
    View Code

    2.2 Maven工程添加依赖

    上网搜索依赖进行添加: 推荐网站:http://mvnrepository.com/
    示例:
    <dependencies>
            <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-core</artifactId>
                <version>5.2.10.Final</version>
            </dependency>
    </dependencies>
        添加到项目的pom文件内容说明(切换pom.xml到Dependencies目录下):
            type:类型
                  取值说明:
                        jar:jar包
                        Scope:声明jar包的存活时间
                      取值说明:
                            1、provided:编译和测试时需要
                            2、compile:编译、测试、运行、打包需要
                            3、runtime:测试、运行、打包需要
                            4、test:测试
                            5、system:编译和测试时需要,显示引用,Maven不会检索
    View Code

    2.3 修改maven工程的jdk版本号(两种方式)

    方式一:在指定项目的pom.xml中添加如下话语(每个maven project或者maven  model都要配置):
    <!--构建项目配置 -->
        <build>
            <!--插件 -->
            <plugins>
                <!-- java编译插件,配jdk的编译版本 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.6.0</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                        <encoding>UTF-8</encoding>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    方式二:在maven的settings.xml中配置jdk插件(配置一次即可):放在<profiles>节点下即可
           <profile>    
                  <id>jdk-1.8</id>    
                  <activation>    
                        <activeByDefault>true</activeByDefault>    
                       <jdk>1.8</jdk>    
                    </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> 
    View Code

    第三章 Maven依赖传递

    1.什么是传递依赖?

    依赖一个jar包往往会下载相互关联的jar包这就是依赖传递

    2.依赖传递出现的问题

    依赖传递出现的问题: 经常出现jar包冲突,
    解决方案:直接排除指定的jar包

    3.解决jar包冲突的方式(4种)

    3.1 排除原则(常用)
    <exclusions>
        <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
        </exclusion>
    </exclusions>
    3.2 版本号限定原则
    <!-- 1.标记版本号 -->
    <properties>
         <spring.version>4.3.8.RELEASE</spring.version>
    </properties>
        <!-- 2. 锁定版本,spring4.3.8 -->
         <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-context</artifactId>
                    <version>${spring.version}</version>
                </dependency>
            </dependencies>
         </dependencyManagement>
          <!-- 依赖管理 -->
          <dependencies>
                  <!-- spring -->
                  <dependency>
                      <groupId>org.springframework</groupId>
                      <artifactId>spring-context</artifactId>
                  </dependency>
          </dependencies>
    3.3 第一声明原则(基本不用)
    3.4 路径就近原则(基本不用)

    4 依赖传递中的依赖范围

    5.Maven常用命令

    clean:清空
    compile:编译
    deploy:上传
    test:单元测试
    install:添加到本地仓库
    tomcat:run 启动tomcat
    package:打包

    第四章 Maven继承

    开发中多个项目有共同的jar包依赖,可以采用继承方式简化各个项目的pom文件,在父类的pom文件中依赖共同拥有的jar.
    注意:
    1.父级项目只能是pom打包方式。
    2.子项目是一个Maven Project
    示例: 创建一个pom项目,然后再创建另外的jar或war项目继承pom项目

    第五章 Maven聚合

       能够把项目的各个模块聚合在一起构建。一般用于分模块开发,最后整体打包发布。
         
         Maven Model和Maven Project的区别?
              Maven Project独立运行
              Maven Model无法独立运行
       注意:
           1.根项目是一个pom项目。
           2.子模块:Maven Model
           3.每个模块写完后需要上传到私服
           4.打包,需要整体打包找到最后的war项目使用Tomcat加载
           
            实际中,我们会将一些庞大的项目拆分为若干模块进行开发
            三层+MVC 如下:
            model-------jar
            dao----------jar
            service------jar
            web----------war

    第六章 聚合与继承的关系

    • 聚合是为了方便快速构件项目。对于聚合模块来说,它知道有哪些被聚合的模块,但那些模块不知道这个聚合模块的存在;

    • 继承是为了消除重复配置。对于继承关系的父POM来说,它不知道有哪些子模块继承于它,但是子模块必须知道自己的父POM是什么

  • 相关阅读:
    还是模块
    模块
    Django之中间件和Auth模块
    Django之form表单组件、cookie与session
    ORM表查询之F查询和Q查询以及事务
    django之单表和多表查询
    django之模板层
    Django之路由
    Django之前戏
    前端之Bootstrap框架
  • 原文地址:https://www.cnblogs.com/sueyyyy/p/9575470.html
Copyright © 2011-2022 走看看