maven笔记

Maven 是一个项目管理和构建自动化工具。

Maven 使用惯例优于配置的原则 。它要求在没有定制之前,所有的项目都有如下的结构:

目录

目的

${basedir}

存放 pom.xml和所有的子目录

${basedir}/src/main/java

项目的 java源代码

${basedir}/src/main/resources

项目的资源,比如说 property文件

${basedir}/src/test/java

项目的测试类,比如说 JUnit代码

${basedir}/src/test/resources

测试使用的资源

 

一个 maven 项目在默认情况下会产生 JAR 文件,另外 ,编译后 的 classes 会放在 ${basedir}/target/classes 下面, JAR 文件会放在 ${basedir}/target 下面。

 

为了验证我们的程序能运行,执行下面的命令:

 ~$java -cptarget/helloworld-1.0-SNAPSHOT.jar com.mycompany.helloworld.App

POM(Project Object Model)

 

一个项目所有的配置都放置在 POM 文件中

 

在 POM 中,groupId, artifactId, packaging, version 叫作 maven 座标,它能唯一的确定一个项目。一般 maven 座标写成如下的格式:

      groupId:artifactId:packaging:version

Maven 插件

一个目标是一个工作单元,而插件则是一个或者多个目标的集合。mvn 本身不会做太多的事情,它把构建的任务交给插件去做。

Maven 生命周期

生命周期指项目的构建过程,它包含了一系列的有序的阶段 (phase),而一个阶段就是构建过程中的一个步骤。插件目标可以绑定到生命周期阶段上。一个生命周期阶段可以绑定多个插件目标。当 maven 在构建过程中逐步的通过每个阶段时,会执行该阶段所有的插件目标。maven 能支持不同的生命周期,但是最常用的是默认的Maven生命周期 (default Maven lifecycle )。

1.    process-resources 阶段:resources:resources

2.    compile 阶段:compiler:compile

3.    process-classes 阶段:(默认无目标)

4.    process-test-resources 阶段:resources:testResources

5.    test-compile 阶段:compiler:testCompile

6.    test 阶段:surefire:test

7.    prepare-package 阶段:(默认无目标)

8.    package 阶段:jar:jar

Maven 依赖管理

传递依赖是指 maven 会检查被依赖的 jar 文件,把它的依赖关系纳入最终解决的依赖关系链中。

在 POM 的 dependencies 部分中,scope 决定了依赖关系的适用范围。 test, provided, complie

Maven 库

本地库是指 maven 下载了插件或者 jar 文件后存放在本地机器上的拷贝。当 maven 查找需要的 jar 文件时,它会先在本地库中寻找。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章