《Maven官方文档》Maven 开发

原文链接   译者: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 平台或者 Cygwinwgetpatch命令是可用的。

$ 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

更多链接

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/98424.html

(0)
上一篇 2021年8月20日
下一篇 2021年8月21日

相关推荐

发表回复

登录后才能评论