Java 从入门到放弃11 - 《Maven》

说点题外话,没想到突然又重拾更新,在这期间学习了java的许多知识,还补充了sql语句,数据库相关的内容,由于时间关系,中间部分的内容都没有做相应笔记和博客,因为sql的语句还有中间补充的那一段知识很大程度上也算是字典类的工具,等到时候用到了或者忘了之后再去仔细查询。

Maven

Maven 介绍

  • Maven的定义
    • Maven 是一个标准化的Java项目管理和构建工具
  • Maven的主要功能
    • 提供了标准化的项目结构
    • 提供了标准化的构建流程(如:编译,测试,打包,发布)
    • 提供了依赖管理机制

Maven 项目结构

a-maven-project
├── pom.xml
├── src
│   ├── main
│   │   ├── java
│   │   └── resources
│   └── test
│       ├── java
│       └── resources
└── target
  • a-maven-project 是项目名,pom.xml是项目描述文件,存放java源代码在src/main/java里面,存放资源文件在src/main/resources里面,测试源码/测试资源 存放在src/test里面,所有编译/打包文件都存放在target目录里面,这就是一个Maven项目的标准目录结构

pom.xml的结构

<project ...>
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.itranswarp.learnjava</groupId>
	<artifactId>hello</artifactId>
	<version>1.0</version>
	<packaging>jar</packaging>
	<properties>
        ...
	</properties>
	<dependencies>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.2</version>
        </dependency>
	</dependencies>
</project>
  • 可以看到下面有许多小分支,其中最关键的是三个

    • 通常是公司或者组织的名称
    • 通常是项目的名称
    • 通常是更新迭代的版本
  • 一般安装依赖的时候我们也通过这三个变量去确定

<dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>1.2</version>
</dependency>

依赖关系

  • Maven定义了几种依赖关系,分别是compiletestruntimeprovided

    • compile:编译时需要用到该jar包(默认)
      • 比如日志依赖 commons-logging
    • test:编译测试文件Test时需要用到该jar包
      • 比如 JUnit
    • runtime:编译时不需要,只有运行时才需要用到
      • 比如 MySQL 驱动
    • provided:编译时需要用到,但运行时由jdk或者某个服务器提供(类似接口)
      • 比如 Servlet API 运行时由 Servlet 服务器内置了相关的jar包,所以运行时并不需要
  • Maven会把compile类型的依赖直接放入classpath

posted @   ZzTzZ  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示