插件,插件目标,生命周期,座标,仓库,依赖管理

插件,插件目标,生命周期,坐标,仓库,依赖管理
插件与目标(Plugins and goals)
通过mvn 插件名称:插件目标运行
,如要运行原型插件的create目标
mvn archetype:create -DgroupId=org.sonatype.mavenbook.ch03 -DartifactId=simple -DpackageName=org.sonatype.mavenbook

其中插件由maven库提供,也可以自己写插件,并搭建maven库。
默认的mvn库提供了一些常用插件。

每个插件都包含了多个目标,可以根据自己需要决定使用哪个目标

生命周期(Lifecycle)
maven管理的项目由多个生命周期阶段组成整个生命周期,生命周期中的阶段是有序的,可以根据需要,决定当前需要运行的寿命周期,maven默认配置提供了一组默认生命周期阶段。

生命周期阶段实际上是内部封装了对插件目标的调用。
常见的有
resources:resources
Resources插件的resources目标绑定到了 resources 阶段。这个目标复制src/
main/resources下的所有资源和其它任何配置的资源目录,到输出目录。
compiler:compile
Compiler插件的compile目标绑定到了 compile 阶段。这个目标编译src/main/
java下的所有源代码和其他任何配置的资源目录,到输出目录。
resources:testResources
Resources插件的testResources目标绑定到了 test-resources 阶段。这个目标复
制src/test/resources下的所有资源和其它任何的配置的测试资源目录,到测试
输出目录。
compiler:testCompile
Compiler插件的testCompile目标绑定到了 test-compile 阶段。这个目标编
译src/test/java下的测试用例和其它任何的配置的测试资源目录,到测试输出
目录。
surefire:test
Surefire插件的test目标绑定到了 test 阶段。这个目标运行所有的测试并且创
建那些捕捉详细测试结果的输出文件。默认情况下,如果有测试失败,这个目标
会终止。
一个简单的Maven项目
30
jar:jar
Jar插件的jar目标绑定到了 package 阶段。这个目标把输出目录打包成JAR文
件。



坐标
Maven坐标定义了一组标识,它们可以用来唯一标识一个项目,一个依赖,或者Maven
POM里的一个插件。

<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>cgodo</groupId>
  <artifactId>cgodo_lang</artifactId>
  <version>1.0</version>
  <packaging>jar</packaging>

  <name>cgodo_lang</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
<!--引用项目坐标-->
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>


一个项目的groupId:artifactId:version使之成为一个独一无二的项目;你不能同
时有一个拥有同样的groupId, artifactId和version标识的项目。

packaging项目类型,默认是jar,如果打包后的项目是其他类型如war,则写war


maven仓库
默认使用的是http://repo1.maven.org/maven2/
未下载的依赖会下载到/${user.home}/.m2/repository

依赖
具有传递性

site
site生命周期只生成站点,不进行编译,是一个独立的生命周期阶段。该站点根据pom生产对应的项目描述信息