Maven的pom.xml文件详解------Environment Settings

转载自  Maven的pom.xml文件详解------Environment Settings

Issue Management

使用的缺陷跟踪系统(Bugzilla,TestTrack,ClearQuest,等)信息,主要用于产生项目文档。

<issueManagement><system>Bugzilla</system><url>http://127.0.0.1/bugzilla/</url>
</issueManagement>
 

Continuous Integration Management

持续构建系统配置。

<ciManagement><system>continuum</system><url>http://127.0.0.1:8080/continuum</url><notifiers><notifier><type>mail</type><sendOnError>true</sendOnError><sendOnFailure>true</sendOnFailure><sendOnSuccess>false</sendOnSuccess><sendOnWarning>false</sendOnWarning><configuration><address>continuum@127.0.0.1</address></configuration></notifier></notifiers>
</ciManagement>

notifiers:定义当出现构建状态时需要通知的人,已经通知的方式。 

 

Mailing Lists

定义了该项目需要保持联系的人员,主要是开发人员和用户的邮件列表。

<mailingLists><mailingList><name>User List</name><subscribe>user-subscribe@127.0.0.1</subscribe><unsubscribe>user-unsubscribe@127.0.0.1</unsubscribe><post>user@127.0.0.1</post><archive>http://127.0.0.1/user/</archive><otherArchives><otherArchive>http://base.google.com/base/1/127.0.0.1</otherArchive></otherArchives></mailingList>
</mailingLists>

1)subscribe、unsubscribe:执行对应行为指定的邮件地址。如为了订阅上面用户的,一个用户需要发送email到user-subscribe@127.0.0.1; 
2)archive:已归档的邮件列表邮件的url,如果有镜像归档地址,则指定到otherArchives中; 
3)post:post到邮件列表的邮件地址。 

 

SCM

SCM:Software Configuration Management,也称作Source Code/Control Management简洁的成为version control。
这里是你存放版本管理信息到POM的地方

<scm><connection>scm:svn:http://127.0.0.1/svn/my-project</connection><developerConnection>scm:svn:https://127.0.0.1/svn/my-project</developerConnection><tag>HEAD</tag><url>http://127.0.0.1/websvn/my-project</url>
</scm>

1)connection:要求对源代码有读的权限,可以更新;developerConnection:要求对源代码有写的权限,可以提交代码; 
Maven有另一个项目Maven SCM,提供公共的API,供SCM的插件实现。目前所有的SCM的插件可以在http://maven.apache.org/scm/scms-overview.html上找到; 
2)tag:指定该项目所在的标签。HEAD是默认; 
3)url:一个公共的可浏览的仓库。 

 

Prerequisites

为了让该POM正确的执行所需要的先决条件,这里是你定义先决条件的地方。如果不满足这些先决条件,Maven将不会开始。目前只有maven的最小版本号一个先决条件。

<prerequisites><maven>2.0.6</maven>
</prerequisites>

 

Repositories

定义Maven的仓库地址,在Super POM中已经定义了Maven的默认仓库中心http://repo.maven.apache.org/maven2(见Super POM)。

<repositories><repository><releases><enabled>false</enabled><updatePolicy>always</updatePolicy><checksumPolicy>warn</checksumPolicy></releases><snapshots><enabled>true</enabled><updatePolicy>never</updatePolicy><checksumPolicy>fail</checksumPolicy></snapshots><id>codehausSnapshots</id><name>Codehaus Snapshots</name><url>http://snapshots.maven.codehaus.org/maven2</url><layout>default</layout></repository>
</repositories>
<pluginRepositories>...
</pluginRepositories>

1)releases、snapshots:针对组件的发布类型能干采取的策略(release或者snapshot); 
2)enabled:true/false,仓库对于对应的类型是否激活; 
3)updatePolicy:指定Maven尝试更新的频率,Maven将比较本地POM的时间戳(存储在仓库的maven-metadata文件中)和远端POM的时间戳,选择为:always,daily(默认),interval:X(X为整数,单位分钟)或者never; 
4)checksumPolicy:当Maven部署文件到仓库时,它也部署了对应的校验和文件。你可以选择ignore、fail或者warn来响应当文件丢失或者不正确后的操作; 
5)layout:default/legacy,Maven 2和Maven 3都是用default layout。 
pluginRepositories的配置方式和repositories一致。 

 

Distribution Management

管理build生成的组件和资源文件和分发。

基本属性

<distributionManagement>...<downloadUrl>http://mojo.codehaus.org/my-project</downloadUrl><status>deployed</status>
</distributionManagement>

downloadUrl:另一个POM配置用于获取该POM的组件的仓库的url; 
status:这个值不能手动配置,当该组件上传到仓库时,Maven将设置这个项目的状态,它的有效值为: 
none:没有特殊状态,默认; 
converted:仓库的管理人员从一个对Maven 2来说更早的版本转换到这个POM; 
partner:这个组件有被同步到一个合作仓库; 
deployed:最通用的状态,这个组件从Maven2或者Maven2部署; 
verified:这个项目被查证了,应该被终止。

 

Repository

distributionManagement通过repository定义当组件部署时,项目可以从哪里(和怎么)获取远端仓库。

<distributionManagement><repository><uniqueVersion>false</uniqueVersion><id>corp1</id><name>Corporate Repository</name><url>scp://repo/maven2</url><layout>default</layout></repository><snapshotRepository><uniqueVersion>true</uniqueVersion><id>propSnap</id><name>Propellors Snapshots</name><url>sftp://propellers.net/maven</url><layout>legacy</layout></snapshotRepository>...
</distributionManagement>

id:仓库的唯一标识; 
name:人类可读的名称; 
uniqueVersion:true/false,表示部署到该仓库的组件是否应该获取一个唯一产生的版本号,并用这个版本号作为地址的一部分; 
url:指定用于传送构建成的组件(包括POM文件和校验和数据)到仓库的网络地址和传输协议,是Repository的核心; 
layout:default/legacy,同project下的repository 元素。 

 

Site Distribution

比起分发到仓库,distributionManagement更多的运用是定义怎么部署项目的站点和文档。

<distributionManagement>...<site><id>mojo.website</id><name>Mojo Website</name><url>scp://beaver.codehaus.org/home/projects/mojo/public_html/</url></site>...
</distributionManagement>

 

Relocation

<distributionManagement>...<relocation><groupId>org.apache</groupId><artifactId>my-project</artifactId><version>1.0</version><message>We have moved the Project under Apache</message></relocation>...
</distributionManagement>

项目在发展的过程中,可能被迫转移到其它更适合的地方。relocation用于给项目的用户指名该项目被重命名为什么(例如上面,项目被重命名到org.apache:my-project:1.0),除此之外,它还提供一个项目转移的解释。 

 

Profiles

POM 4.0的一个新特征是改变项目被构建的环境的settings的能力。

<profiles><profile><id>test</id><activation>...</activation><build>...</build><modules>...</modules><repositories>...</repositories><pluginRepositories>...</pluginRepositories><dependencies>...</dependencies><reporting>...</reporting><dependencyManagement>...</dependencyManagement><distributionManagement>...</distributionManagement></profile>
</profiles>

 

Activation

Activation是profile的关键。一个profile的威力来自于在当前的环境下修改基本POM的能力。

<profiles><profile><id>test</id><activation><activeByDefault>false</activeByDefault><jdk>1.5</jdk><os><name>Windows XP</name><family>Windows</family><arch>x86</arch><version>5.1.2600</version></os><property><name>sparrow-type</name><value>African</value></property><file><exists>${basedir}/file2.properties</exists><missing>${basedir}/file1.properties</missing></file></activation>...</profile>
</profiles>

jdk:如果jdk版本号匹配被给的前缀,则profile被激活,例如:1.5.0_06将匹配上面的配置; os:在哪些操作系统下profile被激活; property:profile将激活,如果Maven探测到一个对应的name=value对的property。 file:一个通过file的existence指定的文件名可以激活profile。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/322673.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大二暑假工作三个月后辞职,总体感悟

本人是个大二的学生&#xff0c;因为疫情影响&#xff0c;学校放了很长时间的假。当时对自己的前端技术很自信&#xff0c;大概在五月底的时候决定去上海闯一下&#xff0c;找个工作&#xff0c;不管能不能找到&#xff0c;就是尝试一下&#xff0c;失败了也没关系&#xff0c;…

P5004-专心OI - 跳房子【dp,矩阵乘法】

正题 题目链接:https://www.luogu.org/problemnew/show/P5004 题目大意 把NNN个无色格子排成一行&#xff0c;可以把某些格子染成黑色&#xff0c;但两个黑色格子之间必须至少有MMM个无色格子&#xff0c;求方案数 解题思路 首先很明显 fn∑i0n−m−1fif_n\sum_{i0}^{n-m-1}…

35年编程史沉淀下来的8条宝贵经

01 1. 时刻提醒自己&#xff1a;学习 学习某件事的第一步是承认你不知道。这听起来很正常&#xff0c;但经验丰富的程序员还记得要真正让自己承认这一点需要花多长时间。很多计算机科学专业的学生毕业的时候&#xff0c;都有一种很傲慢的态度&#xff0c;就是“我知道最好的”&…

Maven的pom.xml文件详解------The Basics

转载自 Maven的pom.xml文件详解------The Basics Maven坐标 GroupId、artifactId和version构成了Maven的坐标&#xff08;groupId和version可以从parent继承&#xff09;&#xff0c;指定了组件在Maven仓库中的位置。Maven中的每个组件都有一个坐标&#xff0c;通过这个坐标…

php artisan快捷命令

远程启动laravel&#xff1a; php artisan serve --host 0.0.0.0 创建新的Controller php artisan make:controller loginController 创建快捷资源Controller php artisan make:controller ArticlesController --resource 对应的创建快捷路由 Route::resource(‘articles’,…

P1407-[国家集训队]稳定婚姻【tarjan,强连通分量】

正题 题目链接:https://www.luogu.org/problemnew/show/P1407 题目大意 若干对夫妻&#xff0c;和若干对绿色关系&#xff0c;求每对夫妻离婚后&#xff0c;绿色关系是否可以重新让每个人两两配对。 解题思路 我们可以让 夫妻女的连男的 交往男的连女的 然后跑tarjantarjan…

基于Emgu CV+百度人脸识别,实现视频动态 人脸抓取与识别

背景 目前AI 处于风口浪尖&#xff0c;作为 公司的CTO&#xff0c;也作为自己的技术专研&#xff0c;开始了AI之旅&#xff0c;在朋友圈中也咨询 一些大牛对于AI 机器学习框架的看法&#xff0c;目前自己的研究方向主要开源的 AI 库&#xff0c;如&#xff1a;Emgu CV、TensorF…

Lombok的@Data生成的hashCode和equals方法坑

一、场景复现 创建两个lombok的Data注解的类Pig实例&#xff0c;放进HashMap当key&#xff0c;map里面的数据居然被覆盖了。 package com.mk;import lombok.Data; Data public class Pig extends Animal{private String sex; }package com.mk;import java.util.HashMap; impo…

vscode多行选中

shiftalt移动光标&#xff0c;可以连续同时编辑多行内容

jzoj4671-World Tour【图论,bfs】

正题 luogu题目链接:https://www.luogu.org/problemnew/show/CF666B 题目大意 求4个点&#xff0c;使得这4个点按顺序最短路到达的长度最远。 解题思路 用bfsbfsbfs求出每个点之间的最短路&#xff0c;然后对于每个点求出最远点&#xff0c;次远点&#xff0c;反最远点和反次…

vue-cli2、vue-cli3脚手架详细讲解

转载自 vue-cli2、vue-cli3脚手架详细讲解 前言&#xff1a; vue脚手架指的是vue-cli它是vue官方提供的一个快速构建单页面&#xff08;SPA&#xff09;环境配置的工具&#xff0c;cli 就是(command-line-interface ) 命令行界面 。vue-cli是基于node环境利用webpack对文件进…

微软为.NET程序员带来了最优的跨平台开发体验-WSL

前言 在前几个Visual Studio Code更新中发现有一个重要得特性&#xff0c;就是nodejs可以使用VS Code在WSL中进行Debug了&#xff08;WSL是指Win10中的Linux子系统&#xff09;,之前写过一篇文章是使用SSH对Linux环境进行Debug&#xff0c;此时的想法就是如果可以在WSL中直接对…

article之api文档

查 method:get http://127.0.0.1:8000/article 单条 http://127.0.0.1:8000/article/10 method:get 新增 http://127.0.0.1:8000/article method:post 修改 http://127.0.0.1:8000/article/10 method:put 删除 http://127.0.0.1:8000/article/3 method:delete ## 查询所有数据&…

jzoj4672-Graph Coloring【图论,模拟】

正题 题目大意 一张无向图&#xff0c;每条边有一个颜色(红或蓝)&#xff0c;可以选择点使得连接的边都取反&#xff0c;求至少要选多个点可以使得所有边的颜色相同。 解题思路 不难发现如果确定所有边的颜色&#xff0c;然后知道一个点的选择后就可以知道整个联通图的选择。…

Redis 性能问题分析

转载自 Redis 性能问题分析 在一些网络服务的系统中&#xff0c;Redis 的性能&#xff0c;可能是比 MySQL 等硬盘数据库的性能更重要的课题。比如微博&#xff0c;把热点微博[1]&#xff0c;最新的用户关系&#xff0c;都存储在 Redis 中&#xff0c;大量的查询击中 Redis&am…

谈谈微服务中的 API 网关(API Gateway)

前言 又是很久没写博客了&#xff0c;最近一段时间换了新工作&#xff0c;比较忙&#xff0c;所以没有抽出来太多的时间写给关注我的粉丝写一些干货了&#xff0c;就有人问我怎么最近没有更新博客了&#xff0c;在这里给大家抱歉。 那么&#xff0c;在本篇文章中&#xff0c;我…

laravel如何生成swagger接口文档

php artisan serve --host 0.0.0.0 php artisan serve --port 8080 地址&#xff1a; http://127.0.0.1/blogkjh/public/api/documentation 1、安装包 composer require darkaonline/l5-swagger 2、配置 php artisan vendor:publish --provider “L5Swagger\L5SwaggerService…

jzoj4673,CF578D-LCS again【统计,字符串,容斥】

正题 luoguluoguluogu题目链接:https://www.luogu.org/problemnew/show/CF578D 题目大意 求有多少个字符串TTT使得其和字符串SSS的LCSLCSLCS长度为∣S∣−1|S|-1∣S∣−1 解题思路 首先考虑挖一个空再填一个字母。 这样方案数为n∗n∗mn*n*mn∗n∗m 但是我们考虑aabaabaab这样…

OAuth2 实现单点登录 SSO

转载自 OAuth2 实现单点登录 SSO 1. 前言 技术这东西吧&#xff0c;看别人写的好像很简单似的&#xff0c;到自己去写的时候就各种问题&#xff0c;“一看就会&#xff0c;一做就错”。网上关于实现SSO的文章一大堆&#xff0c;但是当你真的照着写的时候就会发现根本不是那么…

Ocelot网关

Ocelot是一个.net core框架下的网关的开源项目&#xff0c;下图是官方给出的基础实现图&#xff0c;即把后台的多个服务统一到网关处&#xff0c;前端应用&#xff1a;桌面端&#xff0c;web端&#xff0c;app端都只用访问网关即可。 Ocelot的实现原理就是把客户端对网关的请求…