maven是一个成熟和流行的java项目构建工具,现在将通过学习慕课网maven教程所记载的笔记,以及查阅官网了解的maven相关知识做一个笔记记录之。
Maven目录结构
- maven的目录结构如下
src
- main
-java
-package
- test
- java
- package
- resources
pom.xml
配置文件
- maven基于约定,减少了配置,比如约定的配置结构。
- maven的配置文件名为pom.xml配置文件的路径为项目工程的根目录。
<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">
<modelVersion>4.0.0</modelVersion>
<!-- 组织-->
<groupId>com.imooc.maven01</groupId>
<!-- 项目名词 -->
<artifactId>maven01-model</artifactId>
<!-- 版本 -->
<version>0.0.1SNAPSHOT</version>
<!--打包类型-->
<packaging>jar</packaging>
<!-- 依赖 -->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
构建命令
maven的基本命令是mvn
,通过使用不同的参数来实现不同的效果。
mvn [options] [<goal(s)>] [<phase(s)>]
查看系统版本
mvn -v
编译项目
mvn compile
测试项目
mvn test
打包项目
mvn package
删除target目录
mvn clean
安装jar包到本地仓库,安装的目录:组织ID/项目ID/版本
mvn install
跳过测试
mvn package -Dmaven.test.skip=true
archetype创建项目骨架
我么可以使用maven的archetype插件来自动地创建项目的骨架。
交互式的创建
mvn archetype:generate
批处理模式
mvn archetype:generate -B -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.1 -DgroupId=com.company -DartifactId=project -Dversion=1.0-SNAPSHOT -Dpackage=com.company.project
坐标和仓库
maven的构建是基于坐标的,groupId
为组织的名字,如com.company
,artifactedId
为项目名字加模块名,如oops-model1
,version
为版本。
<groupId>com.maven01</groupId>
<artifactId>model</artifactId>
<version>1.0-SNAPSHOT</version>
仓库:存储maven项目依赖包的地方,首先会在本地仓库
中去查找,如果没有找到,就去中央仓库
中去查找,如果再没有找到就报错。
maven的生命周期
Maven有以下三种标准的生命周期:
- clean 清理项目
- default 构建项目
- site 生成项目文档站点
maven的生命周期相互独立,每个生命周期中包含一些阶段,各个生命周期中的阶段是有顺序的,后面的阶段依赖于前面的阶段,但是不同的生命周期的阶段是不会相互影响的。maven核心只提供基本的功能,他执行的如mvn clean
,mvn package
等命令都是通过调用maven插件来实现的,他们分别对应生命周期的不同阶段,这些阶段绑定了相应插件的goal
(目标:插件具体实现的功能)。maven有许多内建的插件,并且已默认绑定到了生命周期的各个阶段。
Phase | plugin:goal |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
可以通过在 |
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<phase>compile</phase>
<id>compile-package-source</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
<execution>
<phase>compile</phase>
<id>package-source</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
参考
- Generate project in batch mode
- http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html
- http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
- http://maven.apache.org/ref/3.6.2/maven-model/maven.html
- 项目管理利器——maven