码迷,mamicode.com
首页 > 其他好文 > 详细

maven

时间:2020-07-19 23:54:21      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:远程仓库   use   测试的   inf   工作   admin   snap   设计项目   源文件   

1.Java开发项目需要做的工作?
    1.分析项目要做什么,知道项目有哪些组成部分
    2.设计项目,通过哪些步骤,哪些技术,需要多少人,多长时间
    3.组建团队,招人,购置设备,服务器,软件等等
    4.开发人员写代码,然后测试自己写的代码,重复。。
    5.测试人员测试代码,重复

2.传统的项目开发的问题,没有使用maven管理
    1.很多模块,模块之间有关系,手工管理关系,很繁琐
    2.需要很多第三方功能,需要很多jar包,需要手工从网络获取jar包
    3.需要管理jar包的版本
    4.管理jar包之间的依赖,你的项目要使用a.jar ,需要使用b.jar里面的类,必须首先获取b.jar才可以,然后才能使用a.jar

3.改进项目开发,使用maven,
    1.maven可以管理jar文件
    2.自动下载jar和它的文档,源代码
    3.管理jar直接的依赖,a.jar需要b.jar。maven会自动下载b.jar
    4.管理你需要的jar版本
    5.帮你编译程序,把Java编译为class
    6.帮你测试你的代码是否正确
    7.帮你打包文件,形成jar文件,或者war文件
    8.帮你部署项目
总结:管理jar包,编译,测试,打包,部署;

4.构建;项目的构建
    构建是面向过程的,就是一些步骤,完成代码的编译,测试,运行,打包,部署等等。maven支持的构建包括有:
    1.清理:把之间羡慕编译的东西删除掉(target),为新的编译代码做准备 mvn clean
    2.编译:把程序源代码编译为执行大妈(编译的是src/main下的Java),Java.class文件  mvn compile  mvn test-compile
    javac不一样,它一次只能编译一个文件
    3.测试:maven可以执行测试程序代码,验证你的功能是否正常,批量的,maven同时执行多个测试代码,同时测试很多功能(测试的是test/java下的程序)   mvn-test
    4.报告:生成测试结果的文件,测试通过没有
    5.打包:把你 的项目中的结果文件,通常是Java程序,压缩文件是jar扩展名的,对于web应用,压缩文件扩展名是.war  mvn package
    6.安装:把5中生成的文件jar/war安装到本机仓库  mvn install
    7.部署:把程序安装好可以执行;  mvn deploy

5.maven的核心概念:用好maven,用好这些概念
    1.POM:一个文件,名称是pom.xml,pom(project object model)翻译过来叫做项目对象模型,maven把一个项目当一个模型使用,控制maven构建项目的过程,管理jar依赖;
    2.约定的目录结构:maven项目的目录和文件的位置都是规定的
    3.坐标:唯一的字符串,用来表示资源的(groupID,artifactID,version)
    4.依赖管理;管理你的项目可以使用jar文件
    5.仓库管理:(了解)你的资源存放的地方
    6.生命周期:(了解)maven工具构建项目的过程
    7.插件和目标:(了解)执行maven构建的时候使用的工具是插件
    8.继承
    9.聚合

6.maven工具的配置:
    1.需要下载maven安装包,解压安装包,解压到一个非中文的目录
    2.配置环境变量:在系统的环境变量中,指定一个M2_HOME的名称,指定它的值是maven工具安装目录,bin之前的目录;M2_HOME    =E:\apache-maven\apache-maven-3.5.2,在把M2_HOME    加入到Path中    
    3.验证;在cmd中输入mvn -v
还不懂;https://www.bilibili.com/video/BV1dp4y1Q7Hf?p=6

7.maven约定的目录结构,约定是大家都遵循的一个规则
1)maven项目在磁盘中都是一个文件夹(项目-hello)
hello/
    --/src
        --/main  #放主程序Java代码和配置文件
             --/java  #程序包和包中的Java文件
         --/resource  #Java程序中要使用的配置文件
        --/test
         --/java  #测试程序包和包中的Java文件
         --/resource  #测试Java程序中要使用的配置文件
    --/pom.xml  #maven的核心文件(maven项目必须有)

8.疑问:mvn.compile编译src/main目录下所有的Java文件的
    1.为什么要下载?
    maven工具执行的操作需要很多插件
    2.下载了什么?
    jar文件--叫做插件--完成某些功能
    3.下载的东西放到了哪里?
    默认仓库中(本机仓库):C:\Users\Administrator\.m2\repository

    执行mvn compile ,结果是在项目的根目录下生成一个target目录,叫结果目录,是maven编译的Java程序,最后的class

9.设置本机存放资源的目录位置;
    1.先将Setting.xml备份;
    2.E:\apache-maven\maven_repository拷贝
    3.进入Setting.xml中,找到<localRepository>修改;注意格式;

10.仓库
    1.仓库是什么?:是存放东西的,存放maven使用的jar包,,maven使用的插件和项目中使用的jar

    2.仓库的分类:
        1.本地仓库:就是你的个人电脑上的文件夹,存放各种jar
        2.远程仓库:
            1).中央仓库:在互联网上,使用网络才能使用的仓库,是做权威的,所有的开发人员都共享使用的一个集中的仓库;也叫中央仓库
            2).中央仓库的镜像:就是中央仓库的备份,在各大洲,重要的城市都是镜像,目的是为了减轻中央仓库的压力;
            3.私服:在公司内部,在局域网中使用,不对外使用;在公司中搭建一个服务器,用自己的服务器中的仓库;(有能力的公司推荐)

11.仓库的使用;maven仓库的使用【不需要人为参与】
    开发人员需要使用MySQL的驱动--maven首先查本地仓库是否有对应的jar包--私服--镜像----中央仓库(直到找到为止)

12.pom:项目
    groupId,artifactId和Version组成一个坐标,在互联网中标识唯一项目;每个项目必须有坐标;
<groupId>com.bjpowernode</groupId> #公司域名的倒写
<artifactId>welcome</artifactId>   #自定义项目名称
<version>1.0-SNAPSHOT</version>    #自定义版本号;

    www.mvnrepository.com:搜索使用的中央仓库,使用groupid或者artifactID作为搜索条件;
packing:打包后压缩文件的扩展名,默认是jar,web应用是war,可以不写
dependencies和dependency;你的项目中要使用的各种资源说明;相当于是Java中的import
<dependencies>
<!--是我们项目中要使用的MySQL驱动jar包,我们从官网上利用坐标来获取文件,下载-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.44</version>
</dependency>
</dependencies>

properties:定义一些配置属性,例如字符集等;
<properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <maven.compiler.source>12</maven.compiler.source>
      <maven.compiler.target>12</maven.compiler.target>
</properties>

build:maven在进行项目的构建时,配置信息,

13.maven生命周期,maven的命令,maven的插件
    1.生命周期:就是maven构建项目的过程,清理,编译,测试,报告,打包,安装,都是
    2.命令:maven独立使用,通过命令,完成maven的生命周期的执行、maven可以使用命令,完成项目的清理,编译,测试等;
    3.插件:maven命令执行时,真正完成功能的是插件,插件就是一些jar文件,一些类

14.单元测试(测试方法);
    1.Junit,是一个专门测试的框架(工具),测试的是类中的方法,每一个方法都是独立测试的;方法是测试的基本单位(单元);然后maven借助单元测试批量测试方法是否符合预期;
    2.使用步骤:
        1.加入依赖:在pom。xml中
        2.在maven项目中的src/test/java 目录下,创建测试程序。推荐的创建类和方法的提示;
        1.测试类的名称,是Test+你要测试的类名
        2.测试的方法名称是:Test+方法名称;

        例如你要测试hellomaven。创建测试类:Testhellomaven
        @Test
        public void testAdd(){
            测试hellomaven的add方法是否正确
}
其中testadd方法叫做测试方法,它的定义规则
        1.方法是public的,必须是;
        2.方法没有返回值,必须是
        3.方法名称是自定义的,推荐是Test+方法名称
        4.在方法的上面加注释;@Test

15.mvn compile:编译main/java/目录下的Java为class,同时把class拷贝到target/classes目录下,把main/resources目录下所有文件都拷贝到target/classes下

16.在IDEA中设置maven,让IDEA和maven结合使用。IDEA中有一个内置的maven,一般不使用内置的。因为内置的修改maven的配置不方便。使用自己安装的maven,需要覆盖IDEA的默认的设置,让IDEA指定maven的安装;

17.配置入口;settings(配置当前)--Build,Execution。Deployment--Build Tools--Maven--在这里我们配置maven的home,settings和本地仓库--Runner--配置jre和VM Option(填写 -DarchetypeCatalog=internal)
 -DarchetypeCatalog=internal:maven项目在创建时,会联网下载一个模板文件,比较慢,加上后变快

18.使用模板创建普通的JavaSe项目;maven-archetype-quickstart
创建web工程:maven-archetype-webapp

19.Reimport:重新导入,相当于刷新功能,用于项目中内容的更变时IDEA没响应;

20.依赖范围;使用scope表示
    1.scope的值有;compile ,test ,provided  默认是compile
    2.scope表示依赖使用的范围,也就是在maven构建项目的那些阶段中起作用
        maven构建项目:清理 编译 测试 打包 安装 部署
举例:
//Junit依赖的范围是test阶段
<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.13</version>
      <scope>test</scope>
    </dependency>

compile;所有阶段都会用到,
provided:编译 测试阶段要用,后续阶段不要用;(也就是Tomcat本身有,不需要自带)

21.在pom文件中添加依赖,maven会时刻自动检测pom文件,所以,当我们在pom文件中添加依赖,maven会自动下载依赖存入本地仓库;

22.maven的常用操作:
    1.maven的属性设置:<properties>设置maven的常用属性
    2.maven的全局变量:1.在<properties>通过自定义标签声明变量(标签名就是变量名)
               2.在pom.xml文件中的其他位置,使用${标签名}使用变量的值;
               3.自定义全局变量一般是定义依赖的版本号,当你的项目中要使用多个相同的版本号,先使用全局变量定义,在使用${变量名}
    3.资源插件:
<resources>
            <resource>
                <!-- 指定resources插件处理哪个目录下的资源文件 -->
                <directory>src/main/java</directory>
                <!--注意此次必须要放在此目录下才能被访问到 -->
                <targetPath>META-INF/resources</targetPath>
                <includes>
                    <include>**/*.properties</include>
                </includes>
            </resource>
        </resources>
在mybatis课程中涉及到;默认没有使用resources的时候,maven执行编译代码时,会把src/main/resources目录中的文件到target/classes,对于Src/main/java下的非Java文件不处理,不拷贝到target/classes目录中;

    2.我们的程序有需要把一些文件放在:src/main/java目录中,当我们在执行Java程序时,需要用到src/main/java目录中的文件,就要告诉麻烦在mvn.compile  src/main/java目录下的程序时,需要把文件一同拷贝到target/classes目录中,此时就需要在<build>中加入<resources>



maven

标签:远程仓库   use   测试的   inf   工作   admin   snap   设计项目   源文件   

原文地址:https://www.cnblogs.com/1877chl/p/13341347.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!