大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
POM是项目对象模型(Project Object Model)的简称,它是Maven项目中的文件,使用XML表示,名称叫做pom.xml。作用类似ant的build.xml文件,功能更强大。该文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。事实上,在Maven世界中,project可以什么都没有,甚至没有代码,但是必须包含pom.xml文件。
成都创新互联公司自2013年创立以来,是专业互联网技术服务公司,拥有项目成都网站设计、成都网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元北镇做网站,已为上家服务,为北镇各地企业和个人服务,联系电话:18980820575
4.0.0
pom的版本,这是Maven 2&3唯一支持的pom版本,而且不能忽略.
主版本号.次版本号.修订版本号
版本号的后缀意味着项目的不同阶段:
打包类型,没有提供的话默认值为jar,常见的有jar与war,也可以取值:
Maven的一个强大之处是处理项目关系的方式,可以通过一个公共的本地仓库去解决问题.
POM的基础就是依赖列表,Maven下载与在编译时链接依赖与其他所需要的目标,而且可以处理传递性依赖,使列表可以专注于项目所需的依赖.依赖放在
....
....
一个
对应项目坐标
版本
可用于配置不同jdk的
对应的依赖类型,默认为jar,通常对应与
scope表示类库与项目的关系,可以取以下5个值:
当
标记依赖的可选状态.
排除不需要的依赖,包含子元素
使用
org.springframework.boot
spring-boot-starter-parent
2.2.1.RELEASE
子pom会继承父pom的
但不能继承:
另外,就像java中所有类都继承于java.lang.Object一样,所有POM都有一个"Super POM",pom都从它继承而来,下面是Maven3.5.4的"Super pom":
4.0.0
central
Central Repository
https://repo.maven.apache.org/maven2
default
false
central
Central Repository
https://repo.maven.apache.org/maven2
default
false
never
${project.basedir}/target
${project.build.directory}/classes
${project.artifactId}-${project.version}
${project.build.directory}/test-classes
${project.basedir}/src/main/java
${project.basedir}/src/main/scripts
${project.basedir}/src/test/java
${project.basedir}/src/main/resources
${project.basedir}/src/test/resources
maven-antrun-plugin
1.3
maven-assembly-plugin
2.2-beta-5
maven-dependency-plugin
2.8
maven-release-plugin
2.5.3
${project.build.directory}/site
release-profile
performRelease
true
true
maven-source-plugin
attach-sources
jar-no-fork
true
maven-javadoc-plugin
attach-javadocs
jar
true
maven-deploy-plugin
true
模块是pom列出的项目,并作为一个组执行,每个模块通过pom文件或项目的相对路径进行列出.
my-project
another-project
third-project/pom-example.xml
不需要考虑模块间的依赖关系,Maven会对其进行拓扑排序以便在依赖模块之前构建依赖关系.
属性是Maven中的值占位符,像Ant一样,可以以
${x}
这样的形式在pom.xml的任何位置访问一个值,也可以被用作默认值使用.
有5种形式使用值:
env会使用当前shell的环境变量的值.
例如
${env.PATH}
${project.version}
使用settings.xml中的元素的值
${settings.offline}
java系统属性值,通过java.lang.System.getProperties()获取,如
${java.home}
直接使用x,用的是
AAAAA
${aaa}
目标的默认值,可以取值install,copile
构建产生的文件存放目录
构建最终产生的项目名字,但有可能会被更改.
定义一组
描述每个资源的根元素.
构建资源的位置,对于jar包放在META-INF里面.
取值true或false,表示是否开启过滤
资源位置.
指定要包含的资源,使用*作为通配符.
与include相反,要排除的资源列表.
与上面的
与上面的
取值true或false,表示是否加载扩展,默认为false.
取值ture或false,是否应用pom的继承关系,默认true.
插件项的相关配置,可以配置
引入插件的依赖,与前面的
插件可能有多个目标,
可以为pom设置各种目录,比如
构建项目时会编译该目录的源码,是相对于pom.xml的相对路径.
测试时会编译其中的源码,也是相对于pom.xml的相对路径.
这里存放被编译过的class文件.
存放测试文件编译后的class文件.
org.apache.maven.wagon
wagon-ftp
3.3.4
是否包含默认报表.
报表存放位置.
报表包含的插件以及配置.
包含一组
名称.
官方license页面的url.
项目分发的方式,可以选择
一些补充信息.
开发者id.
姓名.
邮箱.
主页url.
所属组织.
所属组织的主页url.
角色,包含一组
时区,可以以America/New_York或Europe/Berlin这样的形式,或者设置一个整数,范围[-11,12].
开发者属性,如如何处理即时消息等.
持续集成系统的名称.
持续集成系统的url.
包含一组
如何发送通知,比如可以取值mail.
取值true/false,错误时发送.
取值true/false,失败时发送.
取值true/false,成功时发送.
取值true/false,发生警告时发送.
相关配置,例如可以添加
,发送的地址.邮件名称.
订阅邮件地址或链接.
取消订阅邮件或链接.
要发送的邮件地址.
查看旧的邮件的url.
描述如何通过Maven连接到版本控制系统,其中connection需要读权限,developConnection需要写权限.
代码标签,默认为HEAD.
公开的可浏览的仓库,例如ViewVC或Fisheye.
org.apache.maven.plugins
maven-enforcer-plugin
3.0.0-M3
enforce-maven
enforce
3.0
代替.
如何处理远征仓库的发布版本,包含:
如何处理远程仓库的快照版本,包含的元素与
远程仓库的标识符.
远程仓库的名称.
远程仓库的url.
仓库布局类型,可以是default或legacy,Maven2.x为仓库提供了默认布局.
还有一个叫
是否默认激活,true或false.
指定jdk版本.
若Maven检测到该属性就会激活该属性所在的配置文件,可以指定
有