Maven基础(一)

2021-07-13  本文已影响0人  MikeShine

1. 写在前面

这个部分都是参考廖雪峰的课程和集团内部分享。沉淀一些笔记。


2. Maven 是干什么的?

答案: Maven 是用来管理 java 工程的

Java项目需要如下东西:

首先,依赖可以直接理解成 python 中的 import包;其次,工程目录结构指 src 文件 存放源码,bin目录存放编译的 .class 文件等;最后,项目构建流程包括 编译、测试、打包、发布等。
maven 为 java 工程提供了以下功能:


3. 一个maven工程的标准结构

src
  -main
      –bin 脚本库
      –java java源代码文件(核心代码部分)
      –resources 资源库,会自动复制到classes目录里(配置文件部分)
      –filters 资源过滤文件
      –assembly 组件的描述配置(如何打包)
      –config 配置文件
      –webapp 页面资源,WEB-INF、css、js等
  -test
      –java 单元测试java源代码文件(测试代码部分)
      –resources 测试需要用的资源库(测试配置文件)
      –filters 测试资源过滤库
  -site Site(一些文档)
target
LICENSE.txt Project’s license
README.txt Project’s readme
一个maven工程
其中,\underline{a-maven-project}是项目的根目录,其中包含了一个 \underline{pom.xml} 描述文件;存放java源代码的是 \underline{src/main/java};存放资源文件的是\underline{src/main/resurces};存放测试用例源代码的是\underline{src/test/java};存放测试资源的是\underline{src/test/resources};最后所有编译打包生成的文件都在\underline{target}目录中。

4. POM描述文件

POM文件的概念比较重要,是我们平时最常接触的。这里看一下POM文件的内容和相关用途。
XML(EXtensible Markup Language)。
给一个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>

这里先简单理解一下常用的标签:

artifact means something made by humans with intelligence.
一个构建是一个抽象概念。

前面依赖本来就有版本,这里可能只是重新指定一下。
如在 <dependency> 中的 <version> 写了${pandora-boot.version} 这样的,在<properties> 标签中就要指定 ${pandora-boot.version} 具体的版本号。
个人理解这样是为了方便版本号批量管理。


5. 总结

上面说了很多,总结一下。
Maven 核心功能两个点:打包依赖管理

5.1 打包

所谓“打包”,就是把 java 源码 编译,打包。形成一个 jar 包。这个包里可能含有多个 .CLASS 类,资源文件等

打包的主要作用就是把你的代码共享给他人。
类似于你用 python 中的 import 第三方包

先了解一下maven构建的3个阶段:

maven常用的操作

5.2 依赖管理

这个之前已经讲的比较详细了。

上一篇 下一篇

猜你喜欢

热点阅读