`

ivy中文参考文档(6)-最佳实践(上)

阅读更多

这里有一些我们从我们的经验和一些客户的顾问工作中收集到的建议和最佳实践。

1) 为所有的模块添加模块描述符

    在ivy的世界种,模块描述符是ivy文件的一种,基本上是简单的xml文件,用来描述模块生产什么作为制品和它的依赖。

    为你的开发涉及到的所有模块编写或者下载模块描述符是一个好习惯,甚至是为你的第三方依赖,哪怕他们不提供他们自己的模块描述符。

    开始这将看上去像是一个额外的工作,并且需要时间。但是当你拥有多个模块同时使用相同的第三方类库,你仅仅需要在你的ivy文件中添加一行就可以得到这个类库和它特有的你真正需要的依赖(如果你的仓库中有正确的模块描述符,尤其是和模块配置一起使用)。当你想更新一个依赖时它将非常有帮助。在你的模块的ivy文件中一个简单的修改就可以得到更新过的版本和它更新(或者没有)过的依赖。

    因此我们推荐在你的仓库中为所有的模块添加ivy文件,你甚至可以通过设置你的解析器上的allownomd 属性为false来强制执行这个规则。你不需要使用依赖制品的包含/排除/specification这些ivy特性,这些仅仅可以用于非常特殊的情况。

2) 使用自己的企业仓库

    对于开源项目而言这通常不是一个正确的建议,但是对于企业世界我们强烈建议遮掩做来避免依赖一个公共的仓库类似mave ibiblio 或者ivyrep.为什么? 好,这里有一堆理由:

    1.  控制

    对于公共仓库最主要的问题在于你没有仓库的控制权。这意味着如果一个模块描述符损坏,你不能轻易的修复它。当然你可以使用一个由共享仓库和公共仓库组成的链,并且将你修复后的模块描述符放置到共享仓库以便它能隐藏公共仓库,但是这会导致仓库浏览和维护的麻烦。

    更多的问题在于仓库可能的更新。我们知道在仓库中发布的版本应该保持稳定并且不要更新,但是我们也频繁的看到模块描述符有很多bug,或者制品被损坏。甚至某些时候我们看到一个新的版本使用和之前版本相同的名字发布,因为前一个版本只不过是被错误打包。这种情况设置发生在最好的东西上,比如我们的ivy1.2 :-)。 后来我们决定发布一个新的使用不同名字1.2a的版本。但是如果仓库管理员容许类似的更新,这意味着以前的工作可以被打破。这将破坏你的构建的可再现性。

    2. 可靠性

    mave仓库的可靠性并不是很好(我们经常体验到非常慢的速度,甚至完全无法访问),同时ivyrep仅仅被一个小公司支持(是的,我们仅仅是一个小公司). 因为速度慢和网站挂起的情况会同样发生。并且如果你依赖的仓库倒下,这将导致你的开发或者发布过程严重减缓。

    3. 准确性

    公共的仓库通常包含远比你实际需要多的东西。这是一个问题吗?我们是这样想的。我们认为在一个企业环境中你使用的类库在被你的公司的每个项目使用前需要有一些验证过程。而做这个事情做好的方式是什么?建立一个仅仅包含你实际需要使用的类库的企业仓库。这将不仅仅可以保证你的运用依赖有更好的质量,而且帮助你在每个地方使用相同的版本,甚至可以再申明你的模块依赖时得到帮助。如果你使用类似ivyde的工具,代码自动完成会紧紧显示你仓库的恰当信息,和你实际需要使用的类库。

    4. 安全
    从模块仓库瞎子啊的制品通常是可执行的,这将牵扯到安全问题。想象一个黑客用一个包含病毒的版本替换commons-lang?如果你依赖公共仓库来构建你的软件,它将有安全方面的风险。你在这里看到可以看到更多的相关信息 Forrester article。

    注意,不是说因为要使用企业仓库就不得不彻底的通过手工来构建。ivy有一个安装任务可以被用来从一个仓库安装模块到另外一个,因此它可以用来有选择的从公共仓库安装模块到你的企业仓库,这里你将有能力确保控制,可靠性和准确性。

3) 至少在组织和模块上使用模式

    ivy非常灵活并且通过使用模式的概念可以适应很多现存的仓库。但是如果你的仓库现在还不存在,我们强烈建议总是在你的模式中使用组织和模块名,甚至是你仅仅放置你自己的模块的私有仓库(这里所有的组织都是相同的)。为什么?因为ivy listing feature(清单特性?)依赖在模式中找到的标记。如果你的模式中没有组织标记,ivy将不能列出你仓库中的组织。举例说对于在ivyde中的代码自动完成这将是一个问题,同样对于仓库范围的任务如安装和仓库报告也是如此。


4) 为公共仓库发布ivysettings.xml

    如果你创建了一个公共仓库,请提供一个ivysettings.xml对应的URL地址。这很容易做到,如果有人想leverage你的仓库,他仅仅需要设置这个你的ivysettings.xml的URL就可以装载它,或者在它自己的配置文件中包含它,这使得联合多个公共仓库变得十分容易。

0
0
分享到:
评论

相关推荐

    Spring Framework 4.1.0参考文档

    总的来说,Spring Framework 4.1.0参考文档详细介绍了Spring Framework各个方面的知识,从基础概念到高级特性,从模块划分到应用最佳实践,为开发者提供了全面的学习资源和指导。希望以上的详细知识点能够为使用...

    spring-reference

    - Spring 3.0发布了一系列新的文章和教程,涵盖了如何使用新特性、最佳实践等内容,为开发者提供了丰富的学习资源。 以上是对Spring框架参考手册的部分内容进行的知识点提炼,这些知识点不仅涵盖了Spring的基本...

    ant文档集合(自己学习ant时的资料)

    Ant是Apache软件基金会...这个压缩包中的文档涵盖了Ant的基础知识、教程、参考和最佳实践,对于想要深入学习Ant的人来说是一份全面的学习资料。通过阅读这些文档,你可以逐步掌握Ant的使用,提升项目构建的效率和质量。

    grails-doc-CN-1.0.rar

    `grails-doc-CN-1.0.rar` 文件包含的是 Grails 1.0 版本的中文参考文档,对于那些不熟悉英文文档或者想要深入了解 Grails 的中文用户来说,这是一个极其宝贵的资源。 文档主要涵盖以下几个关键知识点: 1. **...

    spring 官方文档

    标题“spring 官方文档”和描述“spring-framework-reference.pdf”表明我们即将讨论的是Spring框架的官方参考文档,这份文档是Spring 4.2.4版本的。文档内容涉及Spring框架的各个方面,从基础知识到高级特性,再到...

    Spring的官网文档

    由于文档内容的不断更新,开发者应当定期访问官网或下载最新的文档,以获取最新的信息和最佳实践。由于技术限制,文档中的文字可能会有少量识别错误,但是整体内容仍足够清晰和连贯,供读者学习和参考。

    spring3.2的官方文档

    而在命名约定方面,则提供了一系列的指导原则,以便开发者能够遵循最佳实践,构建清晰、一致的Spring应用程序。 此外,文档还详细阐述了Spring Framework 3中新增加和改进的内容,例如: 1. Java 5支持:随着Java ...

    chief_river 平台设计规范

    - **布局和布线指南**:提供了有关电路板设计的最佳实践,包括信号完整性和电磁兼容性等方面的考虑。 **4. 其他重要组件** - **存储解决方案**:包括对SSD和HDD的支持以及相应的性能优化策略。 - **网络连接**:...

    gradle-8.0.2-all.zip gradle-8.0.2-all.zip gradle-8.0.2-all.zip

    Gradle 是一个强大的构建自动化工具,广泛用于Java、Android和其他 JVM 语言的项目。它以其灵活性、可扩展性和高效的依赖管理而闻名。...为了充分利用Gradle,建议深入阅读其官方文档,了解各项功能和最佳实践。

    spring-webflow

    本指南涵盖了 Spring Web Flow 2 的所有核心概念和功能特性,并提供了详细的示例和最佳实践建议。 **1.2 运行需求** 为了运行 Spring Web Flow,你需要具备以下条件: - Java SE 5 或更高版本。 - Spring ...

    spring4 英文文档

    Spring Framework是一个开源的Java平台,...它不仅覆盖了从基础入门到高级特性的所有知识点,还提供了最佳实践和详细的配置指南。对于任何希望深入理解和掌握Spring框架的开发者来说,这份文档都是不可或缺的学习资源。

    spring文档4.3.x版本

    官方文档是获取Spring框架最新特性和最佳实践的权威资源。Spring官方推荐开发者使用Spring Boot,这是基于Spring框架的一个更加轻量级、快速搭建项目和开发应用的工具。Spring Boot旨在简化Spring应用的初始搭建以及...

    Intel®OpenSource HD Graphics Programmer’s Reference Manual

    OpenSource HD Graphics Programmer’s Reference Manual》是一份非常全面且详细的文档,不仅提供了Intel Ivy Bridge架构图形核心的技术细节,还涵盖了许可使用、产品责任以及开发过程中的最佳实践等内容。...

    spring 3.1 参考手册 英文

    ### Spring 3.1 参考手册中文解读 #### 概览 Spring 3.1 是 Spring 框架的一个重要版本更新,它在 Spring 3.0 的基础上增加了许多新特性和改进,旨在提高开发者的生产力并进一步增强框架的功能性。本篇解读将根据...

    华硕h61m-d点位图

    【华硕H61M-D点位图】是针对华硕这款主板的电路布局图,对于DIY爱好者和电脑维修人员来说,具有重要的参考价值。...在进行任何硬件操作或固件更新时,遵循官方指南和最佳实践是避免潜在风险的关键。

    gradle-2.14.1-all.zip 官网备份

    2.14.1版本可能包含了Java、Android以及其他常用插件,这些插件可以自动应用最佳实践并简化项目配置。 4. **Gradle Documentation**:压缩包内可能包含了丰富的文档,如用户手册、API参考和升级指南,帮助开发者...

    Spring Framework 4.0 Documentation

    Spring Framework 4.0文档是开发人员学习和参考的重要资源,它详细介绍了Spring框架的各个组件、功能和最佳实践。Spring Framework是一个开源的Java平台,为现代企业级应用的开发提供了全面的基础架构支持。其核心...

    intel haswell datasheet

    通过阅读和分析这些文档,我们可以学习到Haswell处理器的性能特点、硬件配置建议、系统优化技巧,以及在实际应用中的最佳实践。这对于系统设计师、硬件工程师、技术爱好者和DIY用户来说都是非常宝贵的信息资源。

    Ant参考教程,Ant使用指南,Ant全攻略

    本教程将详细讲解Ant的基本概念、使用方法以及最佳实践。 首先,对于初学者来说,理解Ant的基本结构至关重要。在Ant中,"project"是构建的基本单元,包含了构建过程中的所有任务。每个项目定义了目标(target),...

    Spring framework reference 4.3.4

    最后,文档可能还提及了一些与Spring框架使用相关的最佳实践、技巧和窍门,以及在实际开发过程中可能遇到的一些问题和解决方案。然而,由于这部分内容并未在文档节选中展示,具体细节不得而知。需要强调的是,Spring...

Global site tag (gtag.js) - Google Analytics