`
liyixing1
  • 浏览: 939385 次
  • 性别: Icon_minigender_1
  • 来自: 江西上饶
社区版块
存档分类
最新评论

pom.xml

阅读更多
每个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>test</groupId>
  <artifactId>test1</artifactId>
  <version>test2</version>
  <packaging>jar</packaging>

  <name>test1</name>
  <url>http://maven.apache.org</url>
	<description>测试项目</description>
	<inceptionYear>2014</inceptionYear>
	<licenses>授权文件</licenses>
	<organization>liyixing</organization>
 <developers>...</developers>
 <contributors>...</contributors>

  <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三个基础属性是一个项目必须的。
另外还可能包括构建依赖信息,项目详细信息,如开发日期,人员等,还有环境包括一体化,邮件,版本库等。

构建包括,验证,编译,构建,测试,发布等环节
每个构建行为都有默认的三种生命周期,默认,干净,站点


所有的pom(项目对象模型)都从一个超级pom中继承
❶ 默认的超级POM定义了一个单独的远程Maven仓库,ID为central。这是所有
Maven客户端默认配置访问的中央Maven仓库。该配置可以通过一个自定义
的settings.xml文件来覆盖。注意这个默认的超级POM关闭了从中央Maven仓
库下载snapshot构件的功能。如果你需要使用一个snapshot仓库,你就要在
你的pom.xml或者settings.xml中自定义仓库设置。Settings和profile将会
在第 11 章构建Profile中和第 A.1 节 “简介”中的附录 A,附录: Settings
细节小节中具体介绍。
❷ 中央Maven仓库同时也包含Maven插件。默认的插件仓库就是这个中央仓
库。Snapshot被关闭了,而且更新策略被设置成了“从不”,这意味着Maven将永
远不会自动更新一个插件,即使新版本的插件发布了。
❸ build元素设置Maven标准目录布局中那些目录的默认值。
❹ 从Maven 2.0.9开始,超级POM为核心插件提供了默认版本。这么做是为那些没有
在它们POM中指定插件版本的用户提供一些稳定性。


继承
可以再pom中指定继承父pom,来减少配置
<project>
<parent>
<groupId>com.training.killerapp</groupId>
<artifactId>a-parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>project-a</artifactId>
...
</project>


或者指定继承的pom文件的路径
<project>
<parent>
<groupId>org.sonatype.mavenbook</groupId>
<artifactId>a-parent</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../a-parent/pom.xml</relativePath>
</parent>
<artifactId>project-a</artifactId>
</project>


以下是一个
Maven POM从它父POM中继承的项目列表:
• 定义符(groupId和artifactId中至少有一个必须被覆盖)
• 依赖
• 开发者和贡献者
• 插件列表
• 报告列表
• 插件执行 (id匹配的执行会被合并)
• 插件配置
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics