译者|carvendy

编辑|包包

Maven 开发 

这文档描述怎么入门开发Maven。这是一个独立页来描述怎么构建Maven的。

找一些工作来做

首先你需要一些事情来做!解决方案可以在几个JIRA项目中找到。

  • JIRA解决方案 当你找到一个你需要的解决方案,工作想在解决方案中加入日志,所核心开发和其他人在寻找以了解其他人已经在什么。

哪里是源码?

看 https://maven.apache.org/source-repository.html 信息。Maven项目使用了git和svn和本页跟踪情况.

不要忘记单元测试!

你将找到很多单元测试在maven-3的树中。如果可能,创建或者修改单元测试证明问题并修复。

如果问题例子不能被安装的单元测试,加入到集成测试。之前提交分支,在任何用例,你用该运行所有集成测试。测试需要空的资源仓库。看核心IT用例文档里面有更多细节。

创建和提交补丁

当你已经解决了一个问题或者是完成了一个成果,创建一个补丁并加入到讨论的问题当中。创建补丁的指引:

  • 补丁是仓库,不是标签。除此之外,你的补丁是已经过时的,而且没有何时的开发头。

  • 总是从你的maven项目根目录创建。例如,pom.xml就在哪里。

  • 如果你的这部分工作没有JIRA问题,现在创建一个JIRA版本。

  • 文件的名字是MNG-<issue number>-<artifact id>.patch。

  • 将补丁放到你所处理的JIRA问题(不要它的拷贝注释)。当添加补丁的时候,添加注释说明你做了什么。很快,一些人将会同意这个补丁和关闭问题。

一个创建补丁命令行的例子:

$ svn diff > MNG-123-maven-core.patch

如果挑选一个问题并已经存在了分支,你可以从这个补丁 JIRA获取,并使用它来工作。如果你使用UNIX 平台或者 Cygwinwget和patch命令是可用的。

$ wget -O - -q <URL to the patch from JIRA> | patch -p0

如果补丁在你本地文件MNG-123.patch而且你想同意使用这个命令:

$ patch -p0 < MNG-123.patch

一些笔记:

  • 如果使用其他工具创建补丁,要确认补丁不在绝对路径之中。补丁在绝对路径是没有用的,很多时候没有和你相同的目录结构。

  • 确认你符合我们的代码规范,是更多。

补丁接纳的条件

这里有一系列关于补丁条件,判断依据:

  • 是否有效的而且是有打算的。这是很明显的。

  • 它是否符合项目的意图。有些补丁可能是不可采取,因为它和当前的开发社区有着不同的意图。在贡献补丁之前需要讨论好问题,所以你不确定的话,就先在邮件列表里面讨论一下。如果你有不同的意见,欢迎你来讨论(有新的意见)并呼吁邮件列表上的人一起讨论。

  • 是否包含测试。任何补丁相关的功能都需要有单元测试或者集成测试。这可以很明显地修复bug(这是需要的),如果没有这个作为基础就不行了。尽量小,改变的时候也不会影响自动化测试的覆盖面。做一个社区,关注当前新增的覆盖面,因为这些区域没有受到自动化测试。

  • 是否包含文档。所有新的功需要文件记录反馈给用户,如果文档很粗糙那么功能的推广就会很慢。虽然粗糙是可以被接受的,但是不完整就不可以了。在自动化测试的时候,是尽量通过文档覆盖的内容。

最重要的是不要气馁。同样需求的提交者应该对彼此好一点。并记住,欢迎你来贡献。

涉及的项目:

Maven 有少部分依赖这些项目:

  • Plexus

plexus 是一个成熟的容器,支持不同组件的生命周期。这是原生的生命周期,就像是现代的IOC容器,使用需要字段注入来配置。所有Maven的核心功能是Plexus是组件。

了解更多关于 Plexus.

  • Modello

Modello 是简单的工具,代表对象模板,用来生成代码和资源。Maven使用Modello来生成所有Java对象,XML的读写,XML Schema和HTML 文档。了解更多Modello。

  • Mojo

“Mojo”给Maven做了两件事情:Maven’s插件API和独立的Mojohaus管理大量插件。Mojohaus项目本来是Maven非核心插件中。一些比较低的功能逐渐变成了这个项目的一部分。

子项目

  • Maven Surefire

Surefire是一个测试框架。它使用了常规的JUnit测试所以你不需要改变代码来使用。它支持BeanShell和Jython脚本测试,有特殊的“电池”来测试验收和Web测试的XML-RPC代码功能测试。读更多关于Surefire。

  • Maven Doxia

Doxia是Maven文档引擎。这是规范和转换的API,习惯用于插件的文档输入和输出。 你可以读更多关于Doxia,还有当前所支持的[文档格式](https://maven.apache.org/doxia/references/index.html。

  • Maven SCM

Maven SCM (源码控制管理)是在Maven的依赖中是可以重复使用的API,它被用于你关于SCM涉及到的Maven插件。Maven的部分核心没有依赖 Maven SCM.读更多关于SCM。

  • Maven Wagon

Maven Wagon是一个独立的API,转换文件和文件夹。Maven的核心使用了Wagon API来下载和上传组件和组件元数据,还有网站插件使用它来发布到网站。读更多关于Wagon

—————END—————

喜欢本文的朋友,欢迎关注公众号 并发编程网,收看更多精彩内容

《Maven官方文档》Maven 开发相关推荐

  1. 《maven官方文档》5分钟开始Maven

    原文地址 前提 你必须明白如何在电脑上安装软件.如果你不知道如何做,请向你学校.办公室里等的人请教下,或者付费给他人让他们解释给你.Maven邮件组不是寻求这个建议的最好地方. 安装 Maven是个J ...

  2. 《Maven官方文档》POM文件(一)

    什么是POM? POM(project object model)包含了工程信息和工程的配置细节,Maven使用POM文件来构建工程.POM文件包含了工程中的大部分默认值.举个例子,target是默认 ...

  3. Poco 库开发-教你如何读Poco的官方文档

    引言 在使用任何一种框架开发的时候,都不免要阅读官方的文档. 下面就讲述如何来读Poco库的官方文档 Poco库 在我们下载好Poco 后,会有两个文件夹,一个是放文档的doc,另外一个就是代码了,这 ...

  4. 微信开发官方文档部分整理

    微信开发官方文档(微信所有功能开发文档的入口) https://developers.weixin.qq.com/miniprogram/dev/framework/ 微信支付 微信支付开发文档 ht ...

  5. 微信小程序开发之官方文档学习(一)

    小程序宿主环境 渲染层和逻辑层 小程序的运行环境分成渲染层和逻辑层:WXML 模板和 WXSS 样式工作在渲染层,JS 脚本工作在逻辑层.渲染层和数据相关:逻辑层负责产生.处理数据,通过 Page 实 ...

  6. [下载]黑莓BlackBerry开发官方文档系列

    原网址:http://appstory.csdn.net/?p=2868 [下载]黑莓BlackBerry开发官方文档系列 分类: BlackBerry 推荐者:ming_ke| 我有话说 本文是关于 ...

  7. HarmonyOS(一) 快速开始学习鸿蒙开发,官方文档学习路线解析

    系列文章目录 HarmonyOS(一):快速开始学习鸿蒙开发,官方文档学习路线解析 HarmonyOS(二):应用开发环境搭建准备 HarmonyOS(三):创建你的第一个HelloWorld应用 文 ...

  8. 基于vue的微信小程序开发5分钟上手教程(官方文档转)

    使用手册 mpvue 继承自 Vue.js,其技术规范和语法特点与 Vue.js 保持一致. 注:其实就是官方文档,只是习惯看博文学习才直接copy过来的,详见官方文档 本文档适用于有一定 Vue.j ...

  9. 【pytest官方文档】解读- 开发可pip安装的第三方插件

    在上一篇的 hooks 函数分享中,开发了一个本地插件示例,其实已经算是在编写插件了.今天继续跟着官方文档学习更多知识点. 一个插件包含一个或多个钩子函数,pytest 正是通过调用各种钩子组成的插件 ...

最新文章

  1. 刘忠范院士:新型研发机构建设成了口号
  2. 帝国cms后台使用savesufer.js生成大音频audio彩色频谱数据
  3. 百练OJ:2767:简单密码
  4. jsoup获得css,Jsoup代码解读之五-实现一个CSS Selector
  5. 深入解析PHP中逗号与点号的区别
  6. 实现数据库的增删改查
  7. [SpringBoot2]文件上传_单文件与多文件上传的使用
  8. dpm码识别_如何读取直接零件打标码(DPM)
  9. opengl 关于glGenBuffers函数没有定义
  10. IBM AIX5.3 linux下C/C++实现HTTPS接口
  11. Word参考文献交叉引用——连续多项引用
  12. 程序员眼中的中国传统文化-王阳明《传习录》3
  13. macos安装盘第三方工具制作_制作 macOS Mojave U盘USB启动安装盘方法教程 (全新安装 Mac 系统)...
  14. 计算机mod函数,MOD函数的公式语法及使用方法实例
  15. 纯手工html+css实现静态游戏网首页(免费拿源码)
  16. Python 整型、浮点型、字符串型、布尔型转换,基础运算符
  17. THINKPHP5(TP5)新手入门必看教程
  18. sipjs 保存mp4文件_微信视频号视频怎么下载,视频号视频怎么保存到手机
  19. 微信小程序——云开发的安全规则
  20. 浅析文本挖掘(jieba模块的应用)

热门文章

  1. python自动化脚本常用方法小结
  2. echarts柱状图颜色渐变样式
  3. 微信墙php_微信上墙PHP源码
  4. 和差角证明托勒密定理
  5. 百度“好看”与字节“西瓜”之间,差了几个B站?
  6. 网站等保三级怎么做?手续是怎样的?
  7. 邮箱密码忘记了怎么办?邮箱密码找回技巧
  8. 个人博客搭建系列(一) 之 阿里云购买域名及解析对应ip地址
  9. 从平头哥讲起,谈谈全域旅游,说说为什么要做全栈工程师
  10. c补week1(linux c基本操作及C语言部分基础知识)