maven的标准pom.xml详解
maven是构建和管理理项目的利器,pom.xml 是其核心。一个标准的pom.xml该怎么写?其中的标签又有什么意义?话不多说,请看代码:
<?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="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <!--指定了当前pom模型的版本,必须这样写,不可更改-->
<modelVersion>4.0.0</modelVersion> <!--坐标信息,并未固定要求,但约定俗成,模块概念和idea有些类似,一个项目分为多个模块-->
<groupId>包名</groupId>
<artifactId>实际项目名+模块名</artifactId> <!--1表示大版本号,0表示小版本号,
SNAPSHOT:快照,表示该版本正在开发中
release:稳定版本
beta:公测版,玩过游戏的都懂
alpha:内部测试版
GA:正式发布版-->
<version>1.0-SNAPSHOT</version> <!--maven项目的打包方式,默认为jar,可供选择的有war、zip、pom-->
<packaging></packaging> <!--项目描述名-->
<name></name> <!--项目地址-->
<url></url> <!--项目描述-->
<description></description> <!--开发人员的列表信息-->
<developers>
<developer></developer>
</developers> <!--许可证信息-->
<licenses></licenses> <!--组织信息-->
<organization></organization> <!--依赖项信息,依赖到的jar包-->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<type></type> <!--依赖的范围,表示本依赖应用于项目中的哪些阶段如下:
compile:默认值。表示该依赖在编译、测试、运行阶段都有效
provided:在编译和测试时有效,在运行时不会被加入
runtime:在测试和运行时有效
test:在测试范围内有效
system:在编译和测试时有效,与provided类似,不过要与本地系统相关联,可移植性差
import:在dependenceManagement中使用,表示导入别的项目的依赖到本项目中,关于本条请参看文末引用的别人的博客-->
<scope>test</scope> <!--设置依赖是否可选,取值为true或false,默认是false,如果是false,则子项目必然继承父项目的依赖(不可选)
若为true,则子项目可以自己选择是否需要父项目的依赖,若需要就手动引入,若不需要就不引入-->
<optional>true</optional> <!--排除依赖列表,如果a依赖b,b依赖c,那么默认的a依赖c,但是我a就是不想依赖c,则可以在这里排除掉c-->
<exclusions>
<exclusion></exclusion>
</exclusions>
</dependency>
</dependencies> <!--一般为了统一管理多个项目,让他们的依赖都具有相同的版本,在所有子模块中的依赖标签都不指定明确的版本号,
maven会自动向其父级查找,直到找到一个父模块拥有dependencyManagement标签,指定了所有依赖的版本号。
这就保证所有模块的依赖版本都来自于同一个父模块的dependencyManagement指定。-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
</dependency>
</dependencies>
</dependencyManagement> <!--对构建项目的支持-->
<build> <!--插件-->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.4</version> <!--表示该插件在什么时候执行-->
<executions>
<execution> <!--表示在打包阶段之后执行本插件-->
<phase>package</phase> <!--执行方式,一般是与java的启动参数类似,例如:run等-->
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build> <!--用来指定继承的父模块-->
<parent></parent> <!--多模块共同管理,一起编译-->
<modules>
<module>A</module>
<module>B</module>
<module>C</module>
</modules> <!--属性,可以指定变量,在其他地方用${junit.version}来代替4.10,如下所示-->
<properties>
<junit.version>4.10</junit.version>
</properties> </project>
scope为import的讲解:
https://blog.csdn.net/ruanhao1203/article/details/79214867
http://www.cnblogs.com/huahua035/p/7680607.html
maven的标准pom.xml详解的更多相关文章
- 【转】maven核心,pom.xml详解
感谢如下博主: http://www.cnblogs.com/qq78292959/p/3711501.html maven核心,pom.xml详解 什么是pom? pom作为项目对象模型.通过 ...
- maven核心,pom.xml详解(转)
什么是pom? pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述了项目:包括配置文件:开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的u ...
- maven核心,pom.xml详解
什么是pom? pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述了项目:包括配置文件:开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的u ...
- Maven实战:Pom.xml详解
什么是pom? pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述了项目:包括配置文件:开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的u ...
- Maven学习总结(15)——Maven 项目中pom.xml详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2 ...
- Maven 教程之 pom.xml 详解
作者:dunwu https://github.com/dunwu/blog 推荐阅读(点击即可跳转阅读) 1. SpringBoot内容聚合 2. 面试题内容聚合 3. 设计模式内容聚合 4. My ...
- Maven中的pom.xml详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- 【maven】 pom.xml详解
pom.xml详解 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www ...
- Maven全局配置文件settings.xml详解(转)
Maven全局配置文件settings.xml详解 目录 一.概要 1.settings.xml的作用2.settings.xml文件位置3.配置的优先级 二.settings.xml元素详解 1 ...
随机推荐
- [规则原则定理]规则原则定理章4 HTTP&RPC
rpc是远端过程调用,其调用协议通常包含传输协议和序列化协议. 传输协议包含: 如著名的 [gRPC](grpc / grpc.io) 使用的 http2 协议,也有如dubbo一类的自定义报文的tc ...
- c语言01次作业--分支,顺序结构
C语言--第01次作业 1.1思维导图 1.2本章学习体会及代码量学习体会 1.2.1学习体会 本章学习让我体会良多.首先,不得不承认自己是一个非常马虎的人.常见的问题就是输出格式上常因为没有与题目要 ...
- UML中的六种关系
设计模式是一种对于面向对象语言(C#,C++,Java)的高级应用.其思维体现出的是真正的代码设计.每一种模式都堪称巧妙!但基于各种设计模式,这里少不了基本的类图设计,本文简要列出6种关系,及相关的例 ...
- javascript和c#aes加密方法互解
关键信息如下. javascript function Encrypt() { var key = CryptoJS.enc.Utf8.parse('8080808080808080'); var i ...
- Scrum冲刺阶段6
成员今日完成的任务 人员 任务 何承华 学习后端设计 陈宇 后端设计 丁培辉 学习后端设计 温志铭 信息界面设计 杨宇潇 信息界面界面设计 张主强 服务器构建学习 成员遇到的问题 人员 问题 何承华 ...
- JavaScript -DOM 编程艺术 2nd 完
今日看完了这本书,做完了最后一个综合性例子.说实话收获良多,终于明白前端-h5 具体做什么 越学习越无知,这个看来真是一个真理. 后期计划: 1.CSS + DIV 布局深入了解,重点实战 2.Jav ...
- nginx报错:./configure: error: C compiler cc is not found, gcc 是已经安装了的
源码安装nginx报错,找不到gcc,但是实际上gcc是存在的,如下: # ./configure checking for OS + Linux -.el7.x86_64 x86_64 checki ...
- 2019年华南理工校赛(春季赛)--I--炒股(简单思维水题)
水题,想想就过了 题目如下: 链接:https://ac.nowcoder.com/acm/contest/625/I来源:牛客网 攒机一时爽,一直攒机一直爽. 沉迷攒机的胡老师很快就发现,他每天只能 ...
- 跨域资源共享(CROS)
跨域资源共享(CROS) 同源策略(Same Origin Policy, SOP) 同源策略允许运行在页面的脚本可以无限制的访问同一个网站(同源)中其他脚本的任何方法和属性.当不同网站页面(非同源) ...
- C++中_cplusplus及Extern "C"的理解
一.意义 Extern "C":告诉编译器,这部分代码按C语言的方式进行编译,而不是C++的. _cplusplus:.cpp文件默认定义的宏.用来判断是否为.cpp文件. 二 ...