插件,插件目标,生命周期,座标,仓库,依赖管理
插件,插件目标,生命周期,坐标,仓库,依赖管理
插件与目标(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里的一个插件。
一个项目的groupId:artifactId:version使之成为一个独一无二的项目;你不能同
时有一个拥有同样的groupId, artifactId和version标识的项目。
packaging项目类型,默认是jar,如果打包后的项目是其他类型如war,则写war
maven仓库
默认使用的是http://repo1.maven.org/maven2/
未下载的依赖会下载到/${user.home}/.m2/repository
依赖
具有传递性
site
site生命周期只生成站点,不进行编译,是一个独立的生命周期阶段。该站点根据pom生产对应的项目描述信息
插件与目标(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生产对应的项目描述信息