ylbtech-Java-Maven:POM百科

Maven是以项目为中心的设计。POM(project object model)是Maven对一个单一项目的描述。没有POM的话,Maven是毫无用处的——POM是Maven的核心。是POM实现的并驱动了这种以模型来描述的构建方式。

1.返回顶部
1、

POM示例

下面的POM示例,是可能用于构建和测试一个项目的脚本。一个POM是一个XML文档,看起来类似于如下的示例:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
此POM脚本允许编译、测试以及生成基本的文档。你可能会问单凭这区区15行代码是如何做到的,实际上这是一个十分好且基本的问题。答案在于Maven对于其Super POM(译者注:意即所有POM脚本的父脚本)的隐匿调用。
 

规则

Maven的POM文档带有全部的Maven所鼓励的默认规则,这类似于Java语言的java.lang.Object对象。
在Java里,所有对象都是java.lang.Object的子对象,同样的,在Maven中,所有POM也都是一个Super POM的子脚本。这个Super POM乍一看可能让你觉得恐怖,要记住的最关键一点是,Super POM包含了重要信息,因此你不必在创建一个POM的时候重复这些信息。
 

包含元素

一个POM包含了关于你的项目的所有重要信息。之前提供的POM示例,非常简单,但仍然显示出了一个POM所包含的一些关键元素。
project:这是所有pom文件中的最顶级元素,一级根元素。
modelVersion:此必需的元素说明了本POM所使用的模型版本。模型本身的版本很少改变,虽然如此,但它仍然是必不可少的,以当Maven引入了新的特性或者其他模型变更的时候,确保稳定性。
groupId:本元素表示创建本项目的组织的唯一标识。groupId是一个项目的核心关键标识之一,它基于组织的完整属性域名。
artifactId:表示本项目的主要项目的唯一基本名。一个典型的由Maven生成的项目名称将会是如下的格式:<artifactId>-<version>.<extension>;,其他部分诸如源包也使用artifactId作为它们名称的一部分。
packaging:表示本项目所使用的包类型(JAR,WAR,EAR等)。这不仅仅意味着将使用JAR,、WAR、EAR打包,也表明在作为构建流程一部分的,一个特定的生命周期。此生命周期是一个主题处理,会在本章的稍后提到。只要记住此选定的项目包扮演的是定制构建生命周期的角色。本元素的默认值是jar,因此在大多数情况下,你不需要去特别指定。
version:表示项目的版本,Maven对于你的版本管理大有帮助,你会经常看到一个版本的SNAPSHOT(快照),指示项目在开发中的不同状态。
name:项目的显示名称,常用于Maven生成的文档当中,并在构建过程中,为你的项目或其他的项目作为一种依赖使用。
url:项目的网站网址。
description:项目的介绍。
2、
2.返回顶部
 
3.返回顶部
 
4.返回顶部
 
5.返回顶部
1、
2、
 
6.返回顶部
 
作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

Java-Maven:POM百科的更多相关文章

  1. java & maven pom

    java & maven pom https://maven.apache.org/pom.html http://www.tutorialspoint.com/maven/maven_pom ...

  2. CentOS 6 编译 TensorFlow for Java 以及 Maven Pom

    我们的系统环境 CentOS 6.5, JDK 1.8 更新yum源 $ yum update 安装 Python 2.7 $ yum install python27 python27-numpy ...

  3. 史上最全的maven pom.xml文件教程详解

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  4. Java maven安装GDAL

    1. 使用编译好的安装jdal http://www.gisinternals.com/release.phpgdal-111-1800-x64-core.msi下载地址:http://downloa ...

  5. myeclipse maven pom.xml 配置错误

    http://www.oschina.net/question/2265006_219341#tags_nav maven pom.xml 配置文件错误       腾讯云消息队列CMQ架构解析> ...

  6. scala maven pom文件

    老司机的spark maven pom文件 pom文件一: 4.0.0 <groupId>com.glsx</groupId> <artifactId>spark- ...

  7. Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】

    http://blog.csdn.net/xiefu5hh/article/details/51707529 Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例[附 ...

  8. maven pom 属性介绍

    maven pom属性 内置属性(预定义,可直接使用) ${basedir} 表示项目根目录,即包含pom.xml文件的目录; ${version} 表示项目版本; ${project.basedir ...

  9. java + maven 实现发送短信验证码功能

    如何使用java + maven的项目环境发送短信验证码,本文使用的是榛子云短信 的接口. 1. 安装sdk 下载地址: http://smsow.zhenzikj.com/doc/sdk.html ...

随机推荐

  1. 【MFC】在MFC中PreTranslateMessage()的使用方法

    BOOL CSearchuserDlg::PreTranslateMessage(MSG* pMsg) { if (pMsg->message==WM_KEYDOWN) // 判断是否有按键按下 ...

  2. Ubuntu中在终端进入root权限但是总提示密码错误的解决方案

    先解除root锁定,为root用户重新设置密码 打开终端输入:sudo passwd(注意是passwd不是password) Password: <--- 输入你当前用户的密码 Enter n ...

  3. sql server 存储过程(事务,带参数声明,数据库瘦身)

    CREATE PROCEDURE procedureName (@var1 as varchar(50),@var2 as varchar(50)) --建立未发临时表 AS begin tran - ...

  4. Windows Phone 应用程序的生命周期(二)

    一.App.xaml.cs /// <summary> /// Application 对象的构造函数. /// </summary> public App() { // 未捕 ...

  5. (转)基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理

    http://www.cnblogs.com/wuhuacong/p/4757984.html 最近一直很多事情,博客停下来好久没写了,整理下思路,把最近研究的基于Metronic的Bootstrap ...

  6. 判断input或者div.span等标签是否存在

    //用jQuery检查某个元素在网页上是否存在时,应该根据获取元素的长度来判断,代码如下 if($("#email"+i).length > 0){//判断input是否存在 ...

  7. java中为什么不允许类多重继承,却允许接口多重继承

    首先看下面这一段代码:(底下有热心网友更正,jdk1.8之后情况确实有点变化,等改天有空继续更) interface a{ void b();}interface a1 extends a{ void ...

  8. Visible Trees

    Visible Trees Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Pr ...

  9. 轻量级本地数据库SQLite在WinRT的使用

    开发环境:Windows 8.1 开发工具:Visual Studio Express 2013 for Windows SQLite数据库介绍 1.SQLite是一款轻型的嵌入式数据库,使用C++开 ...

  10. 敏捷迭代:Sprint燃尽图的7个图形特征及说明的问题

    本文写于很多年前(2006),并在很多地方被引用.而现在,笔者对于Sprint燃尽图的理解有了戏剧性的变化--在看到很多团队滥用它之后.笔者不再建议团队做Sprint燃尽图,因为它们不仅不会增加多少有 ...