专家解读:如何优化项目依赖管理-研发项目管理

>>专家解读:如何优化项目依赖管理-研发项目管理

专家解读:如何优化项目依赖管理-研发项目管理

引言:当今社会市场竞争激烈,软件开发企业想要占据前列需要在研发管理上下功夫,“向管理要效益”已经成为软件开发企业的共识,研发项目管理在软件企业中的普及也是大势所趋。国内做软件项目管理工具的开发商翼发云近几年发展十分迅速,越来越多的软件开发企业认识到研发项目管理的重要性,能切实有效降低成本,规范软件开发流程,提高软件产品质量。国内研发项目管理系统、敏捷开发管理工具的领导品牌翼发云敏捷项目管理系统采用可视化业务流程技术,支持瀑布模型等传统软件研发项目管理,同时也支持scrum等敏捷开发流程,是理想的敏捷开发管理工具,涵盖软件项目管理工作的整个生命周期。为提高国内软件开发企业的项目管理水平,分享一篇企业管理相关的知识文章。

地址:https://github.com/zwjlpeng/maven_detail GitHub

Maven是其管理系统的依赖性强的最大优势,在POM配置文件指定的坐标项目需要的jar包,Maven可以自动帮我们下载从中央仓库或自己的服务器,当项目由于传递性依赖,这两份相同的数据包罐介绍,专家根据他们自己的规则,如最短路径,第一条语句是优先选择相同的jar包,实现该项目的类路径中只保留一个jar包,我们不排队一些粗心的程序员在POM配置文件写在罐子一样依赖两个不同的版本,即使在这种情况下,Maven可以完美解决,不Believe you try ~ ~
scrum

那是,Maven可以解决项目依赖的完美,那么我们为什么需要优化项目的依赖?原因可能如下

1。当项目依赖于第三个jar包,和第三方的jar包,给了我们这样一个巨大的间接间接依赖,不仅浪费磁盘空间,而且潜在的冲突,所以我们需要把这些不必要的依赖被排除在工程项目上,那么瘦,我们需要优化的POM,或间接依赖从jar包版本太低,和jar包低版本不能满足课题的需要,我们也需要低版本的jar包排除,下面是一个例子: 软件项目管理

<依赖><GroupID >净。SF。春天JSON & lt;/ GroupID ><artifactId >弹簧JSON & lt;/ artifactId ></ artifactId >;“;”;

当我们介绍弹簧JSON通过项目Maven的依赖,这种依赖性会使我们充分和低版本的春天CGLIB。我们可以从项目类路径中排除这两个包,只需要将配置更改为以下内容。

<依赖><GroupID >净。SF。春天JSON & lt;/ GroupID ><artifactId >弹簧JSON & lt;/ artifactId ><版本1.3.1 ></版><排除><排除><GroupID >org。Spring & lt;/ GroupID ><artifactId >春天& lt;/ artifactId ></排除><排除><GroupID >CGLIB & lt;/ GroupID ><artifactId >CGLIB全& lt;/ artifactId ></排除></排除></依赖& gt;

JAR数据包的传递依赖性可以通过互斥节点断开连接,如果jar包的所有传递依赖关系被断开,则可以配置。 敏捷开发流程

<依赖><GroupID >净。SF。春天JSON & lt;/ GroupID ><artifactId >弹簧JSON & lt;/ artifactId ><版本1.3.1 ></版><排除><排除><GroupID >* <<GroupID artifactId >>* & lt;/ artifactId ></排除></排除></依赖与GT;

超过2。在项目模块,当我们将依靠罐模块在模块之间依赖程度的各模块的配置文件定义是完全独立的,那么可能是一个模块和B对春季版模块一天是完全不同的,我们需要弹簧升级项目两版本和发现我们不得不换一个模块,B模块两项目配置文件时,模块数量少,我们能做的!但是当模块更多的时候…哈哈!我们需要优化对项目的依赖性,作为一个例子, 研发项目管理

优化前的项目配置

模块一

<依赖><GroupID >redis。客户& lt;/ GroupID ><artifactId >不过& lt;/ artifactId ></ artifactId >;“;”;

模块B

<依赖><GroupID >redis。客户& lt;/ GroupID ><artifactId >不过& lt;/ artifactId ></ artifactId >;“;”;

模块A和B的绝地的版本是完全不同的模块之间的依赖关系,当我们需要升级,只有一个变化,为什么没有一个统一的方式在一个地方实现后的变化,取决于该模块A和B模块的版本会自动改变,和Maven给我们这。dependencymanagement

dependencymanagement和依赖节点间的差异

Maven具有面向对象的思想,面向对象的三个要素是多态,继承,封装,依赖和dependencymanagement是思想的传承关系,在多模块的项目,我们需要在每个模块中有一些需要依赖是如果依赖在每个模块中我们将重复写的再利用使用,作为一个完美的程序员,你可以站在…,我只能站着,哈哈…,所以在我父亲的POM,POM模块继承的概念,每个单元都需要依靠定义依赖这个节点,子模块只需要继承模块得到的依赖,继承的配置代码如下:

<模式>4.0.0 & lt;/模式><母><GroupID >COM。测试& lt;/ GroupID ><artifactId >ecom_airticket & lt;/ artifactId ><版>1 & lt;/版></母><artifactId >ecom_airticket_online & lt;/ artifactId ><包装& gt;战争& lt;/包装& gt;<名>ecom_airticket_online & lt;/名称& gt;

例如,在一个多模块项目,每个模块通常需要JUnit测试的jar包,所以在父POM配置文件,我们可以把这种依赖性

<依赖><依赖><GroupID >JUnit & lt;/ GroupID ><artifactId >JUnit & lt;/ artifactId ><版>$ { JUnit。版} & lt;/版本><范围>测试& lt;/范围><</依赖/依赖& gt & gt;

所以,任何继承的POM文件将在类路径的junit.jar包增加

再次,有一定的依赖性,是各个子模块的独特的,如果放在父模块在波姆的定义,然后所有继承父模块存在的依赖,这样的结果是什么,大量工程中的多余的jar包,不仅浪费磁盘,而且不利于管理,然后有人说,我会在他们的POM文件自己的每个模块依赖的jar包的定义,好主意!但是,如果A和B模块依赖于一个第三jar包,那么如果您想升级到第三方JAR包,请再考虑一下。你需要在POM文件中修改A和B两个模块,有一天,意外地,你只转换了一个模块,忘记了B模块,然后发送到项目行,后果…试想一下,如果这个项目有很多模块依赖于同一条三方jar包,谁又能记住要改变什么呢?

所以专家为我们提供了dependencymanagement,和依赖关系定义在dependencymanagement节点将不会继承。那就是,他们不会被继承。他们想做什么?

答案是dependencymanagement可以依靠统一管理多模块项目的版本号,可以让我们在项目引用的依赖没有明确列出了版本号,Maven会沿着层次结构,直到找到一个与项目dependencymanagement元素,那么它将使用指定的本dependencymanagement元版本号,当然如果子项目定义了一个版本的dependencymanagement,它将覆盖在POM版顶元素

如下是一个示例

父POM配置文件

&lt;&lt dependencymanagement &gt;!– configuration project relies on –> < dependencies> < dependency> < groupId> org.apache.zookeeper< /groupId> < artifactId> zookeeper< /artifactId> < version> /version> a. zookeeper.version}< < /dependency> < dependency> < groupId> org.opensymphony.quartz< /groupId> < artifactId> quartz-all< /artifactId> < version> ${quartz.version}< /version > < /dependency> < dependency> < groupId> oro< /groupId> < artifactId> oro< /artifactId> < version> ${oro.version}< /version> < /dependency> < /dependencyManagement>

子模块中我们只需要这样写

& lt!!!——配置项目的依赖——&gt;&lt;依赖&gt;&lt;依赖&gt;&lt;GroupID &gt;org。Apache管理员& lt;/ GroupID &gt;&lt;/ GroupID &gt;“;”;

下一次我们需要升级我们的版本时,我们只需要在父模块中更改它,所以它并不总是容易的。

Maven的强度远大于。

文章从互联网整理而来,旨在传播scrum、软件项目管理、研发项目管理、敏捷开发管理工具的知识与应用,帮助软件开发企业真正了解研发项目管理的价值和意义,如果本文侵犯了您的权益或者您需要具体了解更多国内做研发项目管理系统的公司翼发云敏捷项目管理系统的相关信息,欢迎和我们联络:

【网址】www.effapp.com

2018-02-17T07:06:51+08:002018-02-17 07:06:51|Categories: scrum项目管理|