云海的博客
首页
  • 接口
  • 数组
  • slice
  • map
  • 指针
  • 反射
  • Context
  • sync.map
  • 锁
  • 类型和类型指针分析
  • recover
  • 从零实现RPC框架
  • make和new区别
  • channel
  • sync.Once
  • sync.Pool
  • protobuf
  • MongoDB pkg源码-findone
  • MyBatis
  • Maven
  • 解析Laravel框架—路由处理
  • PHP(客户端)与 Golang(服务端)使用grpc+protobuf 通信
  • JAVA(客户端)与 Golang(服务端) 使用grpc+protobuf通信
  • Docker使用笔记-常用命令
  • Docker使用笔记-容器间通讯
  • Docker使用笔记-搭建Redis集群
  • Docker使用笔记-镜像多阶段构建
  • Kubernetes部署golang服务
  • Linux常用命令
  • Docker安装Prometheus与Grafana
  • Protobuf
  • TCP抓包
  • 概述-《TCP/IP详解》读书笔记
  • 索引
  • 事务隔离级别
  • 常识
  • 每日一题(1)
  • 每日一题(2)
  • 每日一题(3)
  • 每日一题(4)
关于
GitHub (opens new window)

云海

服务端研发
首页
  • 接口
  • 数组
  • slice
  • map
  • 指针
  • 反射
  • Context
  • sync.map
  • 锁
  • 类型和类型指针分析
  • recover
  • 从零实现RPC框架
  • make和new区别
  • channel
  • sync.Once
  • sync.Pool
  • protobuf
  • MongoDB pkg源码-findone
  • MyBatis
  • Maven
  • 解析Laravel框架—路由处理
  • PHP(客户端)与 Golang(服务端)使用grpc+protobuf 通信
  • JAVA(客户端)与 Golang(服务端) 使用grpc+protobuf通信
  • Docker使用笔记-常用命令
  • Docker使用笔记-容器间通讯
  • Docker使用笔记-搭建Redis集群
  • Docker使用笔记-镜像多阶段构建
  • Kubernetes部署golang服务
  • Linux常用命令
  • Docker安装Prometheus与Grafana
  • Protobuf
  • TCP抓包
  • 概述-《TCP/IP详解》读书笔记
  • 索引
  • 事务隔离级别
  • 常识
  • 每日一题(1)
  • 每日一题(2)
  • 每日一题(3)
  • 每日一题(4)
关于
GitHub (opens new window)
  • MyBatis
  • 多线程
  • Maven
    • 泛型
    • 注解
    • JAVA
    云海
    2022-10-25
    目录

    Maven

    # 概述

    Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。

    # 示例

    <project>
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.baeldung</groupId>
        <artifactId>baeldung</artifactId>
        <packaging>jar</packaging>
        <version>1.0-SNAPSHOT</version>
        <name>com.baeldung</name>
        <url>http://maven.apache.org</url>
        <dependencies>
            <dependency>
              <groupId>org.junit.jupiter</groupId>
              <artifactId>junit-jupiter-api</artifactId>
              <version>5.8.2</version>
              <type>jar</type>
              <scope>test</scope>
            </dependency>
        </dependencies>
        <build>
            <plugins>
                <plugin>
                //...
                </plugin>
            </plugins>
        </build>
    </project>
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    • modelVersion 指定了当前POM的版本,对于Maven 3来说,值只能是4.0.0
    • groupId 创建这个项目的公司或小组唯一名称.通常是组织域名的倒序。
    • artifactId 项目唯一ID
    • version 项目版本
    • packaging 包装方法(WAR、JAR、ZIP)

    groupId、artifactId和version这三个元素定义了一个项目的基本坐标,在Maven的世界里,任何的jar和pom都是以基于这些坐标进行区分的。

    • dependencies可以包含一个或者多个dependency元素,以声明一个或多个项目依赖。

    • type指定了依赖的类型,默认为jar。

    • scope 指定了依赖的范围。 依赖范围有以下几种:

    • compile,默认的依赖范围,表示依赖需要参与当前项目的编译,后续的测试、运行周期也参与其中,是比较强的依赖。

    • test,表示依赖仅仅参与测试相关的工作,包括测试代码的编译和运行。比较典型的如junit。

    • runtime,表示依赖无需参与到项目的编译,不过后期的测试和运行需要参与其中。

    • provided,表示打包的时候可以不用包进去,别的容器会提供。和compile相当,但是在打包阶段做了排除的动作。

    • system,从参与程度来说,和provided类似,但不通过Maven仓库解析,可能会造成构建的不可移植,要谨慎使用。

    # 常用命令

    mvn clean: 表示运行清理操作(会默认把target文件夹中的数据清理)
    mvn clean compile: 表示先运行清理之后运行编译,会将代码编译到target文件夹中。
    mvn clean test:运行清理和测试。
    mvn clean package:运行清理和打包。
    mvn clean install:运行清理和安装,会将打好的包安装到本地仓库中,以便其他的项目可以调用。
    mvn clean deploy:运行清理和发布(发布到私服上面)。
    
    1
    2
    3
    4
    5
    6
    上次更新: 2022/10/27
    多线程
    泛型

    ← 多线程 泛型→

    最近更新
    01
    函数
    04-11
    02
    面试题
    04-11
    03
    EFK日志收集系统单机版
    08-18
    更多文章>
    Theme by Vdoing | Copyright © 2022-2025 Evan Xu | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式