zoukankan      html  css  js  c++  java
  • Maven使用-- 编写POM

     
      就像Make的Makefile、Ant的build.xml一样,Maven项目的核心是pom.xml。 POM(Project Object Model,项目对象模型)定义了项目的基本信息,用于描述项目如何构建,声明项目依赖等等。
     
    Hello World的POM:
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0">
         <xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation = "htttp://maven.apache.org/POM/4.0.0
    http://maven.apache.org/maven-v4_0_0.xsd">
         <modelVersion> 4.0.0 </modelVersion>
         <groupId> com.action.mvnbook</groupId>
         <artifactId> hello-world </artifactId>
         <version> 1.0-SNAPSHOT </version>
         <name> Maven Hello World Project </name>
    </project>
     
      代码第一行是XML头,指定了该xml文档的版本和编码方式。紧接着是project元素,project是所有pom.xml的根元素,还声明了一些POM相关的命名空间及xsd元素。这些属性能够让第三方工具(如IDE中的XML编辑器)帮助我们快速编辑POM。
      根元素下的第一个子元素modelVersion指定了当前POM模型的版本。
     
      最重要的是包含groupId、artifactId和version的三行。这三个元素定义了一个项目基本的坐标,在Maven的世界,任何的jar、pom或者war都是以基于这些基本的坐标进行区分的。
      groupId定义了项目属于哪个组,这个组往往和项目所在的组织或公司存在关联。譬如在googlecode上建立了一个名为myapp的项目,那么groupId应该是com.googlecode.myapp。
      artifactId定义了当前Maven项目在组中唯一的ID。我们为这个Hello World项目定义artifactId为hello-world。可以为不同的子项目(模块)分配artifactId,如myapp-util、myapp-domain等。
      version指定了Hello World项目当前的版本--1.0.SNAPSHOT.SNAPSHOT意为快照,说明该项目还处于开发中,是不稳定的版本。
      
      最后一个name元素声明另一个对于用户更为友好的项目名称。虽然不是必须的,但还是推荐为每个POM声明name,以方便信息交流。
     
      没有任何实际的Java代码,我们就能够定义一个Maven项目的POM,这体现了Maven的一大优点,它能让项目对象模型最大程度地与实际代码想独立,我们可以称之为解耦,或者正交性。这在很大程度上避免了Java代码和POM代码的相互影响。比如当项目需要升级版本时,只需要修改POM,而不需要更改Java代码;而在POM稳定后,日常的Java代码开发工作基本不涉及POM的修改。
     
         
     
  • 相关阅读:
    【CF932F】Escape Through Leaf 启发式合并set维护凸包
    【CF932E】Team Work/【BZOJ5093】图的价值 数学+NTT
    【CF917D】Stranger Trees 树形DP+Prufer序列
    【CF914G】Sum the Fibonacci 快速??变换模板
    【CF772D】Varying Kibibits FWT
    【CF802C】Heidi and Library (hard) 费用流
    【CF802L】Send the Fool Further! (hard) 高斯消元
    【CF809D】Hitchhiking in the Baltic States Splay
    【CF815D】Karen and Cards 单调栈+扫描线
    【CF819D】Mister B and Astronomers EXGCD
  • 原文地址:https://www.cnblogs.com/mywy/p/5069987.html
Copyright © 2011-2022 走看看