ivy中文参考文档(12)-单独使用
1) 单独使用 ivy可以非常容易的作为一个单独的程序使用。你所需要的只是一个java1.4+的运行环境(JRE)! 这是如何调用它的例子: java - jar ivy.jar -? 它将实现类似这样的在线帮助: ==== settings options -settings < settingsfile > use given file for settings - ...
ivy中文参考文档(13)-ant任务(1)-buildlist
buildlist任务用于获取按照ivy依赖信息从小到大排序的文件(通常是build.xml文件) 列表,或者相反(从1.2之后) 这个任务在结合subant构建相关项目集合时特别有效, 可以确保依赖在其他依赖它的模块之前被构建。 当你要排序的模块的ivy.xml不包含修订版本号,在依赖上定义的rev属性将不被使用。 当你要排序的模块的ivy.xml包含修订版本号,修订版本号将被使用。如果修订版 ...
ivy中文参考文档(14)-ant任务(2)-resolve
1) 解析 解析任务实际解析在ivy文件中描述的依赖,并将解析后的依赖放置到ivy缓存中。 如果在resolve任务前没有调用configure任务,则将使用默认的configuration (等同于不带参数的调用configure). 在这个任务调用之后,在ant中有四个属性被设置: ivy.organisation 设置为在用于解析的ivy文件中找到的组织名 ivy.module 设置为在用于 ...
ivy中文参考文档(15)-ant任务(3)-retrieve
1) retrieve retrieve任务复制解析好的依赖到你的文件系统的任何位置。 这是一个post resolve任务,带有所有post resolve任务共有的所有的行为和属性。 从1.4起 这个任务甚至可以根据依赖解析的结果用实际应该存在的东西来同步目标目录。这意味着如果设置sync为"true",ivy不仅将复制必要的文件,而且它还会删除那些不再需要在那里的文件。 同 ...
ivy中文参考文档(16)-ant任务(4)-configure
1) configure configure任务用于通过xml设置文件来配置ivy。 查阅设置文件来获取设置文件自身的细节。 从2.0起 可以通过sttings声明来配置ivy。和这个任务的不同之处在于当使用settings声明时,ivy的配置在settings第一次需要时(例如当你做一次resolve)完成,而configure任务立即执行一次配置,这样如果有某些错误发生可以容易看到。 2) 属性 ...
ivy中文参考文档(17)-ant任务(5)-publish
1) publish 发行当前模块的制品和已解析的描述符(已交付的ivy文件)。 这个任务的目的是发行当前模块描述符和它的声明的发行制品到仓库中。 所有制品必须在这个任务调用前创建。它不会自己创建制品,而是只期望能在制品正则表达式之处的地方找到他们。 目标仓库通过在当前ivy设置中声明的解析器的名字来给出。查阅设置文件来获取解析器支持制品发行的细节。 同时也发行已交付的ivy文件(除非你不想),并且 ...
ivy中文参考文档(18)-ant任务(6)-deliver
1) deliver 交付当前模块的解析好的描述符,而且可能执行依赖的递归交付。 这个任务主要做两个事情: 1. 生成一个解析好的ivy 文件 这个任务生成一个当前模块的解析好的描述符,基于最后一次解析。解析好的ivy文件包含交付的模块的已更新信息,例如修订版本和状态。 此外,所有被包含的配置的文件将包含在ivy文件中,而且变量被他们的值替代。 最终,在解析好的ivy文件中,动态修订版本被在解析过 ...
ivy中文参考文档(20)-ant任务(8)-cachefileset
1) cachefileset 为配置构建一个有ivy缓存中的制品组成的ant fileset 从1.2版本起)。 这是一个后解析任务,有所有后解析任务共有的所有行为和属性。注意这个任务不依赖retrieve,因为构建的fileset是由ivy缓存中的制品直接构成的。 请尽量采用retrieve + 标准ant 路径创造,这使得你的构建不那么依赖ivy(一旦制品被正确的获得,ivy不再需要)。 构建 ...
ivy中文参考文档(19)-ant任务(7)-cachepath
1) cachepath 为解析过的模块配置构建一个由在ivy 缓存(或者取决于useOrigin 设置的原始位置)中的制品组成的ant path. 这是一个后解析任务,有所有后解析任务共有的所有行为和属性。 如果你想让你的构建更少的依赖ivy,你可以考虑使用retrieve 任务。一旦制品被正确的获得,你可以使用标准ant path,这使得ivy不再必不可少。 构建path在ant中通过使用给定的 ...
ivy中文参考文档(21)-ant任务(9)-post resolve tasks
1) post resolve tasks 在ivy中有几个任务被认为是后解析任务(post resolve task),并相应地共享公用行为和设置。 这些任务是: * retrieve * cachefileset * cachepath * artifactproperty (since 2.0) * artifactreport (since 2.0) 所有这些任务都将自动触发resolve ...
ivy教程(1)-目录
学习的最佳方式是实践!这是ivy教程将帮助你做到的,发现一些伟大的ivy特性。 这里是非常优先的教程,它甚至不需要安装ivy,如果你已经正确安装了ant和jdk,甚至只需要花费不到30秒的时间: * 确保你已经正确安装好ant 1.6.0 或更高版本和jdk。 * 复制这个build文件到你本地文件系统上的一个空目录下(确保你将这个文件命名为build.xml) * 在这个目录下打开一个控制台, ...
ivy教程(2)-快速开始
在这个例子中,我们将看到使用ivy的一个最简单的方式。不使用任何特殊设置,ivy将使用maven2 仓库来解析你在ivy文件中声明的依赖。让我们来看一眼涉及到的文件的内容。 你将在ivy发行包的src/example/hello-ivy 目录下找到这个教程的源文件。 1) ivy.xml 文件 这个文件用于描述项目对其他类库的依赖。 这里是例子 < ivy-module version ...
ivy教程(3)-调整默认设置
ivy绑定一些默认设置,这使得在通常环境下使用ivy很容易。这个教程,接近于参考文档,解释这些默认设置是什么和他们怎样调整来满足你的需要。 为了完整的理解设置的概念和你可以用它们做什么,我们建议阅读其他和设置相关的教程(如Multiple Resolvers 和 Dual Resolver )或者设置文件 的参考文档。 1) 概念 默认设置主要是3种仓库组成: * local / 私有 用户私有的 ...
ivy教程(4)-多解析器
这个例子演示模块是如何被多解析器获得的。使用多解析器在很多情况下是非常有用的,这里是一些例子: * 来自发行的单独的集成构建 * 为第三方模块使用公共仓库并且为内部模块使用私有仓库 * 使用一个仓库来存储那些在无法管理的公共仓库里里面的不清晰的模块 * 使用本地仓库来暴露在一个开发人员的位置上生成的构建 在ivy中,多解析器的使用是通过一个名为解析器链的复合解析器来支持的。 在我们的例子中,我们将 ...
ivy教程(5)-双重解析器
在一些情况下,会发生这样的事情:你的模块描述符(ivy文件,maven pom, ...)被放置在一个地方,而模块的制品(jars,...)在另外一个地方。 双重解析器用于满足这种类型的需求,而这个教程将展示如何使用它。 1) 项目描述 让我们看一下你的ivy发行包里面的src/example/dual目录. 它包含一个构建文件和3个目录: * settings: b包含ivy设置文件 * rep ...
ivy教程(6)-项目依赖
这个示例将举例说明在两个项目之间的依赖。 depender项目声明它使用dependee 项目。我们将阐明两个事情: * 被独立的项目声明的公共类库将被依赖的项目自动获取 * depender项目将获取dependee项目的"最新"版本 1) 使用到的项目 1. dependee dependee项目非常简单。它依赖apache类库commons-lang并只包含一个类: sta ...
ivy教程(7)-在多项目环境下使用ivy
在上一个教程中,你已经看到如何处理两个简单项目之间的依赖。 这个教程将引导你完成在一个更加复杂的环境下的ivy使用。这个教程的所有源文件在ivy发行包的src/example/multi-project下可以得到。 1) 上下文 这里是这个教程涉及到得项目的概况: * version 帮助通过版本列表来标识模块 * list 获取目录下的文件列表(递归地) * size 获取目录下的所有文件或者一个 ...
ivy教程(8)-使用ivy模块配置
这个教程介绍ivy文件中的模块配置的使用。ivy模块配置事实上是一个非常重要的概念。某些人甚至告诉我使用ivy而不用ivy配置就像吃乳酪而不动就在你旁边的Chateau Margaux 1976! 严肃的说,ivy中的配置可以更好的理解为你的模块的视图,你将可以看到在这里他们将如何被高效地使用。 关于配置的参考文件可以在这里 和这里 找到。 1) Introduction 源文件在这里 src/ex ...
ivy教程(9)-架设仓库(1)-介绍
install任务让你从一个仓库复制一个模块或者模块集合到另一个仓库。这对于构建和维护一个企业或者团队仓库非常有用。如果你不想你的团队中的开发人员都访问公共的maven2仓库(例如为了控制哪些模块可以在你的公司或者你的团队中使用),答复开发人员的请求来手工增加新的模块或者新的版本在某些时候变得令人厌烦。 幸运的是install任务可以在这里提供帮助: 你可以为你的用于维护目标企业仓库的仓库维护构建 ...
ivy教程(10)-架设仓库(2)-基础仓库复制
在这个步骤中我们使用install任务来从maven2 仓库安装模块到一个基于文件系统的仓库。我们首先安装一个不带依赖的模块,然后安装一个带有依赖的模块。 1) 基础: 使用ivysettings.xml文件 这里我们使用的ivy设置文件非常简单。它定义两个解析器,libraries 和 my-repository. 第一个作为源使用,第二个作为目的地。在典型的安装中第二个仓库将使用包含设置来配置 ...
ivy教程(11)-架设仓库(3)-使用命名空间
现在你已经看到从一个已经存在的仓库创建你自己的仓库是如何的简单,你可能会想知道如何处理更加复杂的情况,例如当源仓库和目的地仓库不遵循相同的命名约定。 1) 通往专业仓库之路 我们将学习这个如何构建一个专业仓库的章节。什么是专业仓库?我们的观点是一个良好质量的仓库必须遵循有关项目命名的清晰的规则,并必须提供正确,可用,可配置和验证过的项目描述符。为了达到这些目标,我们认为你必须构建你自己的仓库。 在前 ...
ivy教程(12)-更多例子
如果你已经成功的跟随并理解了所有的教程,可能你还是需要得到更好的关于如何在现实世界中只用ivy的描述。 这里有一些有关系的链接: 1) SAnt SAnt是一个实验性的基于ant和ivy的构建系统。对于使用它,或者了解它作为一个管理你的构建的有趣的途径,是有趣的。 2) Spring Modules spring模块项目构建系统基于ant和ivy,并且非常感兴趣,对于看一下一个模块化的项目是如何 ...
让ivy支持maven的classifier属性
在maven中,对于一个依赖,除了groupId,artifactId,version这三个属性来作为标志之外,还有一个特殊的属性可用: classifier。 以下面的testng的为例: < dependency > < groupId > org.testng </ groupId > < artifactId > testng &l ...
使用matrix security对Hudson进行细粒度Job的安全控制
写在前面的话 以前有篇博客曾经介绍过Hudson的安全访问控制。但是该文章的缺陷在于注册的用户可以对所有的项目都拥有访问和构建等权限。然而,对于实际的项目管理构建这并不是很理想的方法,所以我们需要针对每个用户专门访问特定的工程。正因为如此,该文章将告诉你解决的办法。 前提:您已经拥有了初步的安全访问控制,如果没有,请参考Use Hudson之标准安全设置搭建一个安全环境。 首先,我们首先以管理员身 ...
使用Hudson进行持续集成(四)
译自: http://www.javaworld.com/javaworld/jw-12-2008/jw-12-hudson-ci.html 请注意,安装JBoss有几种方法的;我这里推荐的方式,您将创建一个专用JBoss用户。最可取的做法是把JBoss安装在您的主目录,这被认为是最佳的做法。这里有摘录了Ubuntu论坛中关于如何安装它的简要描述。 首先,你需要下载一个JBoss 4.2 ...
使用Hudson进行持续集成(五)
译自: http://www.javaworld.com/javaworld/jw-12-2008/jw-12-hudson-ci.html 图 9. JBoss JMX 控制台 部署Hudson很简单,只需要你把hudson.war 复制到/home/jboss/jboss/server/default/deploy下。你最好是使用JBoss用户,这样才能确保JBoss服务器有权限 ...
使用Hudson进行持续集成(六)
译自: http://www.javaworld.com/javaworld/jw-12-2008/jw-12-hudson-ci.html name : JDK 1.6.0_07 JAVA_HOME : Windows : C:\jdk1.6.0_07 Linux : /usr/lib/jvm/java-6-sun 如果您使用的是Windows ,您只要下载一个A ...
使用Hudson进行持续集成(七)
译自: http://www.javaworld.com/javaworld/jw-12-2008/jw-12-hudson-ci.html Project name :我已经把这个项目命名为HeliosJMXTrunk ,但你也可以在这里修改它。 Description : 这是一个自由项,主要用来说明你关于这次构建工作的描述。可不填。(帮助:这说明放在项目的首页,以便访问者可以知道这个 ...
使用Hudson进行持续集成(八)
运行并监控作业 译自: http://www.javaworld.com/javaworld/jw-12-2008/jw-12-hudson-ci.html 要运行您新近创建的作业,第一步就是跳转到http://localhost:8080/hudson(Hudson 控制面板)。图20显示了我在Ubuntu服务器上设置的全新的Hudson实例。 图20. Hudson 控制面板 在 ...
Use Hudson之项目构建
译自:http://wiki.hudson-ci.org/display/HUDSON/Building+a+software+project 一、构建一个普通项目 Hudson能够被用于执行特有的构建服务器工作,诸如持续的/正式的/整晚的构建、运行测试、或者执行一些可重复的批处理任务。这在Hudson中可被称作"free-style software project(自由风 ...