- 浏览: 587481 次
- 性别:
- 来自: 广州
-
最新评论
-
sp42:
好搞笑
你懂不懂xml! (2) -
cherishmmo2004:
感觉你们都很牛掰,我们做的一个运维平台也是用karaf的,用k ...
基于osgi开发大型的企业应用 -
liubey:
“自作聪明”的使用了读写锁,其实只使用ReentrantLoc ...
编码最佳实践(4)--小心LinkedHashMap的get()方法 -
liubey:
你这个代码是sublist后仍然一直持有这个sub的引用,一般 ...
编码最佳实践(5)--小心!这只是冰山一角 -
xiegqooo:
初学maven(5)-使用assembly plugin实现自定义打包
文章列表
这个示例将举例说明在两个项目之间的依赖。
depender项目声明它使用dependee 项目。我们将阐明两个事情:
* 被独立的项目声明的公共类库将被依赖的项目自动获取
* depender项目将获取dependee项目的"最新"版本
1) 使用到的项目
1. dependee
dependee项目非常简单。它依赖apache类库commons-lang并只包含一个类: standalone.Main : standalone.Main提供两个服务:
* 返回项目的版本
* 使用org.apac ...
在一些情况下,会发生这样的事情:你的模块描述符(ivy文件,maven pom, ...)被放置在一个地方,而模块的制品(jars,...)在另外一个地方。
双重解析器用于满足这种类型的需求,而这个教程将展示如何使用它。
1) 项目描述
让我们看一下你的ivy发行包里面的src/example/dual目录.
它包含一个构建文件和3个目录:
* settings: b包含ivy设置文件
* repository: ivy文件的示例仓库
* project: 利用ivy双重解析器的项目
1. dual项目
...
这个例子演示模块是如何被多解析器获得的。使用多解析器在很多情况下是非常有用的,这里是一些例子:
* 来自发行的单独的集成构建
* 为第三方模块使用公共仓库并且为内部模块使用私有仓库
* 使用一个仓库来存储那些在无法管理的公共仓库里里面的不清晰的模块
* 使用本地仓库来暴露在一个开发人员的位置上生成的构建
在ivy中,多解析器的使用是通过一个名为解析器链的复合解析器来支持的。
在我们的例子中,我们将简单的展示如何使用两个解析器,一个在本地仓库而另一个使用maven2仓库。
1) 项目描述
1. 项目: c ...
ivy绑定一些默认设置,这使得在通常环境下使用ivy很容易。这个教程,接近于参考文档,解释这些默认设置是什么和他们怎样调整来满足你的需要。
为了完整的理解设置的概念和你可以用它们做什么,我们建议阅读 ...
- 2009-09-24 20:58
- 浏览 2393
- 评论(0)
在这个例子中,我们将看到使用ivy的一个最简单的方式。不使用任何特殊设置,ivy将使用maven2 仓库来解析你在ivy文件中声明的依赖。让我们来看一眼涉及到的文件的内容。
你将在ivy发行包的src/example/hello-ivy 目录下找到这个教程的源文件。
1) ivy.xml 文件
这个文件用于描述项目对其他类库的依赖。
这里是例子
<
ivy-module
version
="2.0"
>
<
info
organisation
="apache&q ...
- 2009-09-22 11:48
- 浏览 3082
- 评论(0)
学习的最佳方式是实践!这是ivy教程将帮助你做到的,发现一些伟大的ivy特性。
这里是非常优先的教程,它甚至不需要安装ivy,如果你已经正确安装了ant和jdk,甚至只需要花费不到30秒的时间:
* 确保你已经正确安装好ant 1.6.0 或更高版本和jdk。
* 复制这个build文件到你本地文件系统上的一个空目录下(确保你将这个文件命名为build.xml)
* 在这个目录下打开一个控制台,并运行"ant". 就这样!
如果你遇到问题,检查FAQ,可能和你的internet连接有关(代理?)。
...
- 2009-09-21 23:57
- 浏览 2976
- 评论(0)
1) post resolve tasks
在ivy中有几个任务被认为是后解析任务(post resolve task),并相应地共享公用行为和设置。
这些任务是:
* retrieve
* cachefileset
* cachepath
* artifactproperty (since 2.0)
* artifactreport ...
- 2009-09-15 14:17
- 浏览 1486
- 评论(0)
1) cachefileset
为配置构建一个有ivy缓存中的制品组成的ant fileset 从1.2版本起)。
这是一个后解析任务,有所有后解析任务共有的所有行为和属性。注意这个任务不依赖retrieve,因为构建的fileset是由ivy缓存中的制品直接构成的。
请尽量采用retrieve + 标准ant 路径创造,这使得你的构建不那么依赖ivy(一旦制品被正确的获得,ivy不再需要)。
构建fileset在ant中通过使用给定的id注册,从而可以像其他任务ant fileset一样通过使用refid来使用。
2) 属性
属性
...
ln和lndir
1) ln
ln命令用于连接文件或目录。
ln ../a.txt
在当前目录创建上一个目录下的a.txt文件的链接,默认是创建硬链接,目标目录如果不给出则默认为当前目录,文件名默认为原文件名
ln -s a.txt
创建a.txt文件的软链接(符号链接)
ln -s a.txt backup/a.txt.back
创建a.txt文件的软链接(符号链接)到backup目录,文件名为a.txt.back
ln ../a.txt ./b.txt ./c.txt backup
创建多个文 ...
find命令用于查找文件和目录,任何位于参数之前的字符串都将被视为欲查找的目录。
find 可以指定查找条件如名称,类型,时间,文件大小,权限和所有者查找,针对多个条件进行与或非的逻辑运算。我们可以控制find的查找的 ...
- 2009-09-02 00:17
- 浏览 3346
- 评论(0)
1) cachepath
为解析过的模块配置构建一个由在ivy 缓存(或者取决于useOrigin 设置的原始位置)中的制品组成的ant path.
这是一个后解析任务,有所有后解析任务共有的所有行为和属性。
如果你想让你的构建更少的依赖ivy,你可以考虑使用retrieve 任务。一旦制品被正确的获得,你可以使用标准ant path,这使得ivy不再必不可少。
构建path在ant中通过使用给定的id注册,从而可以像其他任务ant 路径一样通过使用refid来使用。
2) 属性
属性
描述
必要
pathi ...
- 2009-09-01 21:21
- 浏览 1631
- 评论(0)
ls的用法: ls [OPTION]... [FILE]...
列举文件信息(默认当前目录), 如果-cftuvSUX或者--sort没有设置则按照字典顺序排序条目
1) 控制显示范围
ls -a
不忽略以.开头的条目,即显示所有文件和目录包括隐藏文件和隐藏目录
ls -A
类似ls -a,但是不显式.和..目录
2) 控制显示格式
ls -1
每行列举一个文件,注意是1234的1,不是字母l
ls -x
以从左到右,由上至下的横列方式显示文件和目录名称
ls -n
类似-l, 但是列举用户和分组的id,即不显式o ...
1) deliver
交付当前模块的解析好的描述符,而且可能执行依赖的递归交付。
这个任务主要做两个事情:
1. 生成一个解析好的ivy 文件
这个任务生成一个当前模块的解析好的描述符,基于最后一次解析。解析好的ivy文件包含交付的模块的已更新信息,例如修订版本和状态。
此外,所有被包含的配置的文件将包含在ivy文件中,而且变量被他们的值替代。
最终,在解析好的ivy文件中,动态修订版本被在解析过程中找到的静态的修订版本替换,因此这些ivy文件后面可以安全的使用来获得相同的依赖(前提条件是修订版本唯一的标识一个模块,这是iv ...
- 2009-08-31 22:22
- 浏览 1490
- 评论(0)
工作中发现的一个非常奇怪也很有趣事情,有关MANIFEST.MF文件中的分行和空格的格式要求,分享给大家。
对于通常的MANIFEST.MF文件,一般格式是:
Class
-
Path: lib
/
a.jar lib
/
b.jar lib
/
c.jar lib
/
d.jar lib
/
e.jar lib
/
...
1) publish
发行当前模块的制品和已解析的描述符(已交付的ivy文件)。
这个任务的目的是发行当前模块描述符和它的声明的发行制品到仓库中。
所有制品必须在这个任务调用前创建。它不会自己创建制品,而是只期望能在制品正则表达式之处的地方找到他们。
目标仓库通过在当前ivy设置中声明的解析器的名字来给出。查阅设置文件来获取解析器支持制品发行的细节。
同时也发行已交付的ivy文件(除非你不想),并且甚至会deliver它,如果ivy文件没有在上一次delever调用时交付或者forcedeliver被设置为true。这是为什么这个任务有很多只是为 ...
- 2009-08-19 07:41
- 浏览 1805
- 评论(0)