Maven学习笔记

  • 需求:说实话,我是为了jar包能够集到项目中写的

开始学习maven

  1. Maven简介
    Maven是Apache开源组织奉献的一个开源项目。Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)。开发人员只需要做一些简单的配置,就可以批量完成项目的构建,报告和文档的生成工作。
    Maven可以统一管理所有的依赖jar,甚至是不同的版本。程序员可以动态的将自己写好的模块打包成jar包让他管理。需要的时候,可以直接通过简单的描述告诉maven,他会帮助程序员找出来,集成到项目中。
  2. 安装maven之前的准备()
  • 下载合适的JDK安装
  • 配置JDK环境目录
  1. Maven的安装与设置
    2, 3步具体链接

Maven的第一个案例

  1. Maven项目主要有一下目录:
src/main/java:存放项目的java源代码
src/main/resources,用来存放项目相关的资源文件(配置文件)
src/test/java:存放项目的测试java源代码
src/rest/java:用来存放运行测试代码时所依赖的资源文件
pom.xml:配置maven管理的所有内容

构建maven项目的的命令与信息

  • 命令。命令很简单,就是创建项目的命令create.
    人们把要调用那个软件的create命令创建项目叫做插件(plugin)。创建项目的插件叫做Archetype插件(archetype-plugin)
  • 信息。和项目相关的信息包括groupId(组ID),artifactId(构建Id),packageName(包名),version(版本)
    其实,packageName和version是很好理解的。程序员写的类,肯定要放到一个标准包下或者标准包的子包下,packageName指标准包,指当前代码的版本号
    这里的groupId和artifactId同部门名称一样,用来唯一确定一个项目(软件,功能)。有些信息会把这两个描述的信息合起来叫坐标。
  1. 创建项目
    在这里插入图片描述
  2. 添加样例源代码-直接基于Spring Boot的单元测试
    在src/mian/java目录下放置HelloWorld.java, 在src/test/java目录下放置TestHelloWorld.java
  • HelloWorld
package com.example.mavendemo.demo1;

/**
 * 这是一个为了研究maven,写的第一个Java代码
 * 功能很简单,输出一个HelloWorld的问候
 * @author lidengyin
 * @version 1.0
 */
public class HelloWorld {
    public String say(String name){
        return name + "say hello world";
    }
}

  • TestHelloWorld
package com.example.mavendemo.demo1;

import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class TestHelloWorld {

    private HelloWorld hello;
    @Before
    public void init(){
        System.out.println("init");
        hello = new HelloWorld();
    }
    @Test
    public void testSay(){
        System.out.println("runnning");
        String name="张三";
        String exp="张三"+"say hello World";
        String act = hello.say(name);
        Assert.assertEquals(exp,act);
    }
    @After
    public void destory(){
        System.out.println("destory");
        hello= null;
    }
}

  1. maven骨架(pom)文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example.mavendemo</groupId>
    <artifactId>demo-1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo-1</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
<!--            <exclusions>-->
<!--                <exclusion>-->
<!--                    <groupId>org.junit.vintage</groupId>-->
<!--                    <artifactId>junit-vintage-engine</artifactId>-->
<!--                </exclusion>-->
<!--            </exclusions>-->
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

  1. 编译和测试
  • 清空以前安装编译过的历史记录
mvn clean 
  • 编译源代码
mvn compile
  • 运行测试案例进行测试
mvn test
  • 将当前代码打成jar包

安装到maven本地管理目录下,其他maven工程只需指定坐标即可使用 其中,[INFO]
installing…指定了当前Maven本地构建保存的目录

[INFO] Installing /home/lidengyin/Downloads/code/demo-1/target/demo-1-0.0.1-SNAPSHOT.jar to /home/lidengyin/.m2/repository/com/example/mavendemo/demo-1/0.0.1-SNAPSHOT/demo-1-0.0.1-SNAPSHOT.jar
[INFO] Installing /home/lidengyin/Downloads/code/demo-1/pom.xml to /home/lidengyin/.m2/repository/com/example/mavendemo/demo-1/0.0.1-SNAPSHOT/demo-1-0.0.1-SNAPSHOT.pom

到目前为止,编码的操作就完成了,包括工程的创建,源代码的编写,单元测试代码的编写,代码的编译,测试案例的运行,以及最后的打包

  1. 生成站点和报告文档
    前面已经完成了一个项目的基本管理过程,接下来介绍生成的相关文档。
  • 生成站点信息
mvn site

自动生成站点信息目录: target/site/index.html

成功信息

[INFO] Generating "Plugins" report       --- maven-project-info-reports-plugin:3.0.0:plugins
[INFO] Generating "Source Code Management" report --- maven-project-info-reports-plugin:3.0.0:scm
[INFO] Generating "Summary" report       --- maven-project-info-reports-plugin:3.0.0:summary
[INFO] Generating "Team" report          --- maven-project-info-reports-plugin:3.0.0:team
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  17:04 min
[INFO] Finished at: 2020-03-30T12:02:30+08:00
[INFO] ------------------------------------------------------------------------
lidengyin@ldy:~/Downloads/code/demo-1$ 

成功界面
在这里插入图片描述

  • 生成APi DOC文档
mvn javadoc:javadoc

API DOC文档目录

target/site/apidocs/index.html

结果
在这里插入图片描述

基于IDEA的Maven插件

  1. 基于IDEA完成所有工作
    之前用的是mvn命令, 后面指定插件的坐标(没有自定, mvn自动找仓库中最新的)告诉mvn做什么事情。在IDEA环境下, 我们是通过什么方式告知mvn做哪些事情呢?
    靠的是pom.xml骨架文件。要做的就是在pom.xml中,按照他的语法要求指定相关的插件坐标,maven运行时,自动调用插件,完成对应的任务。
    这里先了解一下,常用的插件有哪些, 以及怎样确定他们的坐标。这样才好在pom。xml中描述,如图
    在这里插入图片描述
    在IDEA中使用spring-boot-maven-plugin
    进行了统一的集成
    在这里插入图片描述

基于Maven开发Spring Boot应用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值