做的项目大部分都是用 Maven 构建的,一直没有系统的学习和整理 Maven 的知识。最近接手的一个项目,研究架构代码的时候,发现一个大牛们写的一个通过解析 PDM 生成对应数据的生成实体对象的一个 Maven 插件。研究的时候发现很多 Maven 知识还不甚了解,找了本 《Maven 实战》系统的学习和整理知识点一遍。
Maven Introduce
Maven 是一种构建工具,同时还是一个依赖管理工具和项目信息管理工具.它提供了中央仓库,能帮我们自动下载构件.
Maven 文件目录
- bin
该目录包含mvn运行的脚本,这些脚本用来配置Java命令,mvnDebug,主要是 Maven 运行时开启debug,调试 Maven 本身. m2.conf文件, classworlds的配置文件. - boot
只有一个文件,plexus-classworlds-(version).jar. 一个类加载器. Maven使用它加载对应自己的类库 - conf
settings.xml, 全局定义Maven行为. - lib
Maven运行所需的Java类库. 存放的真正的Maven, 里面内置了很多Maven的超级POM.
设置HTTP代理
|
|
Maven ABC
编写POM
12345678910111213<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 http://maven.apache.org/xsd/maven-4.0.0.xsd"><!-- 指定当前POM版本,Maven2 以及Maven3 默认为 4.0.0 --><modelVersion>4.0.0</modleVersion><!-- groupId+artifaceId定义一个项目的基本坐标--><groupId></groupId><!-- 当前所属group中的Maven的唯一ID--><artifactId><artifactId><!-- artifast项目的版本号 --><version></version><!-- --><name></name></project>编写主代码
主代码位于 src/main/java, Java类的包名需要跟POM中定义的groupId和artifactId相吻合,编译输出为target- 编写测试代码
测试代码位于 src/test/java - Archetype生成项目骨架1mvn archetype:generate