maven中pom.xml详细介绍
POM代表工程对象模型。它是使用Maven工作时的基本组建,是一个xml文件。它被放在工程根目录下,文件命名为pom.xml。
POM包含了关于工程和各种配置细节的信息,Maven使用这些信息构建工程。
POM也包含了目标和插件。当执行一个任务或者目标时,Maven会查找当前目录下的POM,从其中读取所需要的配置信息,然后执行目标。能够在POM中设置的一些配置如下:
projectdependencies
plugins
goals
buildprofiles
projectversion
developers
mailinglist
在创建POM之前,我们首先确定工程组(groupId),及其名称(artifactId)和版本,在仓库中这些属性是工程的唯一标识。
POM举例
4.0.0 com.companyname.project-group project 1.0
需要说明的是每个工程应该只有一个POM文件。
所有的POM文件需要project元素和三个必须的字段:groupId,artifactId,version。
在仓库中的工程标识为groupId:artifactId:version
POM.xml的根元素是project,它有三个主要的子节点:
节点 | 描述 |
---|---|
groupId | 这是工程组的标识。它在一个组织或者项目中通常是唯一的。例如,一个银行组织com.company.bank拥有所有的和银行相关的项目。 |
artifactId | 这是工程的标识。它通常是工程的名称。例如,消费者银行。groupId和artifactId一起定义了artifact在仓库中的位置。 |
version | 这是工程的版本号。在artifact的仓库中,它用来区分不同的版本。例如: com.company.bank:consumer-banking:1.0 com.company.bank:consumer-banking:1.1. |
SuperPOM
所有的POM都继承自一个父POM(无论是否显式定义了这个父POM)。父POM也被称作SuperPOM,它包含了一些可以被继承的默认设置。
Maven使用effectivepom(Superpom加上工程自己的配置)来执行相关的目标,它帮助开发者在pom.xml中做尽可能少的配置,当然这些配置可以被方便的重写。
查看SuperPOM默认配置的一个简单方法是执行以下命令:mvnhelp:effective-pom
在你的电脑上的任意目录下创建一个pom.xml文件,使用上面提到的示例pom中的内容。
在下面的例子中,我们在C:\MVN\project目录中创建了一个pom.xml文件。
现在打开命令控制台,到pom.xml所在的目录下执行以下mvn命令。
C:\MVN\project>mvnhelp:effective-pom
Maven将会开始处理并显示effective-pom。
[INFO]Scanningforprojects... [INFO]Searchingrepositoryforpluginwithprefix:'help'. [INFO]------------------------------------------------------------------------ [INFO]BuildingUnnamed-com.companyname.project-group:project-name:jar:1.0 [INFO]task-segment:[help:effective-pom](aggregator-style) [INFO]------------------------------------------------------------------------ [INFO][help:effective-pom{execution:default-cli}] [INFO] ..... [INFO]------------------------------------------------------------------------ [INFO]BUILDSUCCESSFUL [INFO]------------------------------------------------------------------------ [INFO]Totaltime:<1second [INFO]Finishedat:ThuJul0511:41:51IST2012 [INFO]FinalMemory:6M/15M [INFO]------------------------------------------------------------------------
EffectivePOM的结果就像在控制台中显示的一样,经过继承、插值之后,使配置生效。
4.0.0 com.companyname.project-group project 1.0 C:\MVN\project\src\main\java src/main/scripts C:\MVN\project\src\test\java C:\MVN\project\target\classes C:\MVN\project\target\test-classes resource-0 C:\MVN\project\src\main\resources resource-1 C:\MVN\project\src\test\resources C:\MVN\project\target project-1.0 maven-antrun-plugin 1.3 maven-assembly-plugin 2.2-beta-2 maven-clean-plugin 2.2 maven-compiler-plugin 2.0.2 maven-dependency-plugin 2.0 maven-deploy-plugin 2.4 maven-ear-plugin 2.3.1 maven-ejb-plugin 2.1 maven-install-plugin 2.2 maven-jar-plugin 2.2 maven-javadoc-plugin 2.5 maven-plugin-plugin 2.4.3 maven-rar-plugin 2.2 maven-release-plugin 2.0-beta-8 maven-resources-plugin 2.3 maven-site-plugin 2.0-beta-7 maven-source-plugin 2.0.4 maven-surefire-plugin 2.4.3 maven-war-plugin 2.1-alpha-2 maven-help-plugin 2.1.1 false central MavenRepositorySwitchboard http://repo1.maven.org/maven2 never false central MavenPluginRepository http://repo1.maven.org/maven2 C:\MVN\project\target/site
在上面的pom.xml中,你可以看到Maven在执行目标时需要用到的默认工程源码目录结构、输出目录、需要的插件、仓库和报表目录。
Maven的pom.xml文件也不需要手工编写。
Maven提供了大量的原型插件来创建工程,包括工程结构和pom.xml。
总结
以上就是本文关于maven中pom.xml详细介绍的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:Maven构建生命周期详细介绍、Maven管理SpringBootProfile详解、maven学习-初窥门径等,有什么问题可以随时留言,欢迎大家留下宝贵的意见,小编会及时修改。感谢朋友们对本站的支持!