• maven学习笔记


    maven是什么?

    我的体会

    我理解得maven就是一个构建工具,可以做一些项目得整合操作,我们把一些常见得操作,封装在maven里面,并给它命名成 clean,test,compile,这些步骤都是我们自己在maven里面配置好的,在执行的时候,执行对应的命令,会拉取我们配置的那些操作。就不用我们手动的java -jar,java xxxxxxx testxxxxx 这样用命令行去操作。

    maven基本概念

    摘录:https://www.tianmaying.com/tutorial/maven-basic

     构建是什么呢?简单地说,构建就是软件项目生产的整个过程,比如这个过程应该包括:

    • 文档和代码的生成(有些项目会使用代码自动生成工具,比如数据库访问代码的逆向工程)
    • 代码的编译、测试和打包
    • 打包好的代码进行分发或者部署

    上面这三个步骤,都是通过pom.xml来配置的。

    POM是Project Object Model的缩写,项目对象模型。

    一个项目的代码、测试代码 、资源(比如模板文件和配置文件)、依赖的包等,都是一个项目构建中的关键信息。POM文件就是一个描述这些信息的XML文件。

    你执行一条Maven命令的时候,Maven会找到这个POM文件,并在POM文件描述的资源上执行这条命令,这个过程如下图所示:

    在上面的图片中,我们看到有这些个重要的概念:

    • 构建生命周期、阶段和目标
    • 依赖
    • 仓库
    • 插件
    • 配置(Profile)

    Maven将构建过程分解为:构建生命周期(Build Lifecycle)、阶段(Phase)和目标(Goal)。其中构建周期由多个有序的构建阶段组成,一个构建阶段可以绑定一个或者多个的目标。构建生命周期和阶段只是抽象的概念,不涉及具体的功能。 具体的功能由插件(Plugin)实现。

    Maven内置了三个构建生命周期:

    • clean: 主要目的是清理项目
    • default:定义了真正构建时所需要执行的所有步骤,它是生命周期中最核心的部分
    • site: 生成项目站点文档

    我们可以执行一个构建生命期,如clean

    mvn clean

    也可以执行一个构建阶段,如default生命期的install

    mvn install

    或者构建一个构建目标,如dependency:copy-dependencies

    mvn dependency:copy-dependencies

    提示

    你不能直接执行default生命期,你需要指定default生命期中的一个构建阶段或者构建目标。

    构建目标是Maven构建过程中最细化的步骤。一个目标可以与一个或多个构建阶段绑定,也可以不绑定。如果一个目标没有与任何构建阶段绑定,则只能将该目标的名称作为参数传递给mvn命令来执行它。如果一个目标绑定到多个构建阶段,该目标在绑定的构建阶段执行的同时被执行。

    default生命期包含了相当多的构建阶段和目标,常用的构建阶段有:

    • validate :验证项目的正确性,以及所有必需的信息都是否都存在。同时也会确认项目的依赖是否都下载完毕
    • compile:编译项目源码
    • test:选择合适的单元测试框架,对源码执行测试,测试代码不需要进行打包
    • package:将编译后的代码以可分发的形式打包,如Jar包,WAR包
    • install :项目打包后安装到本地仓库,安装到本地之后可以作为本地项目的依赖其它
    • deploy:将打包的制品复制到远程仓库,可以进行远程共享

    参考:https://www.tianmaying.com/tutorial/maven-demo

    maven学习步骤

    第一个maven项目

    1.安装maven

    2.按照基本格式创建project的各个包和java类,projectJava/src/main/java ,Greeter.java,HelloWorld.java

    3.在src文件夹下新建并编辑pom.xml

    4.cmd进入src所在文件夹,mvn compile 编译(编译时,会读取pom.xml文件),首次编译会下载很多package

    5.在java中增加joda的jar包依赖,在pom.xml中编辑,重新mvn compile.

    maven的使用

    1.clean 清除

    2.deploy部署

    http://www.yiibai.com/maven/maven_project_documents.html#article-start

    这个教程超好用

    以下是学习内容

    清理目标目录(clean),然后打包项目生成 JAR(包): mvn clean package

    重新清理并构建:C:\MVN\consumerBanking>mvn clean compile
    内部依赖vs外部依赖:
    <dependencies>
          <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <version>3.8.1</version>
             <scope>test</scope>
          </dependency>
    
          <dependency>
             <groupId>ldapjdk</groupId>
             <artifactId>ldapjdk</artifactId>
             <scope>system</scope>
             <version>1.0</version>
             <systemPath>${basedir}\src\lib\ldapjdk.jar</systemPath>
          </dependency>
       </dependencies>
    创建应用程序的文档:mvn site,会在D:\testMaven\consumerBanking\target\site下生成程序说明文档
     Archetype 是一个 Maven 插件,其任务是按照其模板来创建一个项目结构。在这里我们将使用 quickstart 原型插件来创建一个简单的 Java应用程序。
    C:\MVN>mvn archetype:generate
    enter
    enter
    按照模板构建项目,这里报错了,原因是我在原有的demo下重新构建,mvn发现已经有一个pom,所以报错了。
    参考: http://blog.csdn.net/lilovfly/article/details/52992633

     
  • 相关阅读:
    PHP之PHPExcel X
    Docker之基础(一) X
    Django Admin之常用功能汇总 X
    pycharm中配置启动Django项目 X
    银联支付接入新一代 X
    pycharm集成Jupyter Notebook X
    Django之model外键 X
    Django之添加prometheus监控 X
    Yii2 中配置方法汇总 X
    python常用模块汇总 X
  • 原文地址:https://www.cnblogs.com/zhizhiyin/p/6641120.html
Copyright © 2020-2023  润新知