mavenpom文件结构详解

mavenpom⽂件结构详解
POM⽂件结构
Project Object Model是Maven2项⽬的基础所在,简单来说它就是⼀个XML⽂件,Maven2⽤它来描述⼀个⼯程的整个⽣命周期所需要执⾏的⼀系列功能和特性。
最⼩配置
任何项⽬都最少要包含以下⼏个标签
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.family168.maven2book</groupId>
<artifactId>ch07</artifactId>
<version>1.0</version>
</project>
modelVersion这个标签必须存在,⽽且它的值必须是4.0.0,这标志着我们现在使⽤的是maven2。
groupId和artifactId合起来作为当前项⽬的唯⼀标识,maven2最终会根据这两个值,决定项⽬发布到repo上时所处的位置。
version是项⽬的版本号,它⽤来标记同⼀个项⽬发布的不同版本。
管理依赖
我们平常接触最多的就是dependencies标签了。因为既然使⽤了maven2,最⼤的得益之处还是可以⽤它统⼀管理依赖库。dependencies和它内部的dependency标签就⽤来配置当前项⽬所依赖的第三⽅库的。
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.family168.maven2book</groupId>
<artifactId>ch07</artifactId>
<version>1.0</version>
scm文件<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
我们可以看到dependency标签中也包含了groupId,artifactId和version信息,这三部分就是⼀个mave
n2项⽬所需的最⼩配置,也是maven2所管理的项⽬的唯⼀标识,有了这三个数据,maven2就可以在repo中查到对应的依赖,并将其包含到我们的项⽬中,从⽽实现对依赖库的管理。
上⾯的依赖中,我们使⽤了groupId为junit,artifactId为junit,版本为3.8.1的依赖,这个依赖会在test作⽤域中起作⽤,也就是说,只有在进⾏单元测试的时候,才会⽤到这个依赖,与之对应的是,当我们的程序正常编译,运⾏,打包发布时,是不会包含这个依赖的。maven2内置了多个作⽤域,可以让我们将不同阶段使⽤的依赖库进⾏隔离,之后我们会慢慢讨论这部分的信息。
现在你需要知道,可以使⽤dependencies和dependency为项⽬定义多个依赖,并且每个依赖都需要groupId,artifactId和version这些数据就可以了。
构建部分
pom中⼀⼤部分配置都包含在build标签中,这部分是在对项⽬进⾏构建时所需要的配置,当你对项⽬进⾏编译,测试,打包,发布的时候,这部分配置就会在对应的阶段起作⽤了。
build标签中可以包含很多插件,这些插件可以配置到项⽬的某些构建阶段,随着项⽬的构建进程发挥作⽤。
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.family168.maven2book</groupId>
<artifactId>ch07</artifactId>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
</build>
</project>
报表部分
我们执⾏mvn site就可以为项⽬⽣成⼀系列可以⽤来描述项⽬信息的⽹页,maven2中的⼀⼤部分插件就是专门在这时候发挥效⽤的,它们可以根据项⽬的结构,源代码,测试,SCM信息等,⽣成各种特殊功能的报表,这要把这些插件配置在reporting标签中,它们就会在执⾏mvn site的同时起作⽤。
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.family168.maven2book</groupId>
<artifactId>ch07</artifactId>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
</build>
<reporting>
</reporting>
</project>

本文发布于:2024-09-24 04:20:24,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/382320.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:依赖   配置   标签   发布
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议