炒持续集成续集
通过对炒持续集成这道菜的一些留言发现部分朋友没有真正理解这道菜的真谛。
现在我将我对这道菜的理解进行一些总结.
下面先看看一张简易关系图(Hudson+Maven+SVN)
在上面的图中可以看见得出几条路径
1. Maven ————> Hudson
2. SVN ————> Hudson
3. Maven ————> SVN
先从Maven到Hudson: Maven与Hudson的关系相当于显示层和控制层的关系。为什么怎么说呢!因为Hudson本质不对源码进行编译,测试打包等底层操作。这些底层的操作都是交给Maven去操作。Maven类似于Javac一样。在Dos界面对Java源码的编译。因此我通常将Hudson看做是类似界面显示(但是如果说Hudson是绝对的界面显示有点不妥,是因为Hudson也是有些插件可以进行一些操作的)。
在从SVN到Hudson:其实关系类SVN将它的源码路径和用户名注册到给Hudson。那么Hudson可以通过注册进行访问SVN,从SVN中取出源码。这里源码可以是任何的计算机语言。
在Maven 到SVN:其实关系就相当于直接用Maven的scm连接SVN然后进行源码的操作。不过这样学习成本将不小,界面也不是很友好。因此才会引入Hudson通过界面配置进行集成。如果不用Hudson其实也是可以通过Maven和SVN进行集成。
总结:
因此将Maven+SVN+Hudson进行集成是一个学习和操作方便的组合。同时如果明白这些工具的主要作用。其实Maven也可以用ant替换,SVN也可以用CVS替换。至于怎么使用Hudson怎么使用Maven,怎么使用SVN等,我将根据留言看是否有必要写贴。
注意:整个这道菜的难点在于对Maven的理解
</div>
<p>配合你一下</p>
<p>http://darkranger.iteye.com/blog/611118</p>
<p>?</p> 16 楼 shingo7 2010-07-30 用CruiseControl(也就是常说的CC) 来做集成已经有很多示例子
google一下会有很多
持续集成,说白了就是按照指定的时间规则从代码库中down下代码,然后用ant或maven命令编绎打包生成成果(jar,war或第三方格式的包) ,然后持续集成的工具会提供界面将编绎打包的日志展现出来。 17 楼 jiangduxi 2010-07-30 黑暗浪子 写道jiangduxi 写道吐故纳新 写道小弟对这个不是很懂,不知道理解的对不对,还望多多指教。
Hudson是一个MAVEN命令的管理工具
Hudson并不能说是Maven命令的管理工具。因为他没有管理Maven。Maven只是一个构建工具。它和Hudson的关联在于Maven在Hudson的Config里面进行了配置。按照现在的分层思想,Hudson是前台,它只显示后端传来的数据。操作数据的就是Maven或者Ant。而提供数据则是SVN或者csv
Maven只是一个构建工具??呵呵,看来你自己也没明白
既然Maven你认为不是构建工具。那想听听你的意见。 那你认为Maven是个什么东东呢! 18 楼 黑暗浪子 2010-08-04 jiangduxi 写道黑暗浪子 写道jiangduxi 写道吐故纳新 写道小弟对这个不是很懂,不知道理解的对不对,还望多多指教。
Hudson是一个MAVEN命令的管理工具
Hudson并不能说是Maven命令的管理工具。因为他没有管理Maven。Maven只是一个构建工具。它和Hudson的关联在于Maven在Hudson的Config里面进行了配置。按照现在的分层思想,Hudson是前台,它只显示后端传来的数据。操作数据的就是Maven或者Ant。而提供数据则是SVN或者csv
Maven只是一个构建工具??呵呵,看来你自己也没明白
既然Maven你认为不是构建工具。那想听听你的意见。 那你认为Maven是个什么东东呢!
抱歉,这么久才看到你的疑问。我不同意你说maven只是一个构建工具,它的功能所涵盖的范围你可以再仔细研究一下,并且看看ant+ivy是怎么做的。
最后我严重声明,我从来没有认为maven不是构建工具。请你不要玩文字游戏,没意思的。 19 楼 jiangduxi 2010-08-04 黑暗浪子 写道jiangduxi 写道黑暗浪子 写道jiangduxi 写道吐故纳新 写道小弟对这个不是很懂,不知道理解的对不对,还望多多指教。
Hudson是一个MAVEN命令的管理工具
Hudson并不能说是Maven命令的管理工具。因为他没有管理Maven。Maven只是一个构建工具。它和Hudson的关联在于Maven在Hudson的Config里面进行了配置。按照现在的分层思想,Hudson是前台,它只显示后端传来的数据。操作数据的就是Maven或者Ant。而提供数据则是SVN或者csv
Maven只是一个构建工具??呵呵,看来你自己也没明白
既然Maven你认为不是构建工具。那想听听你的意见。 那你认为Maven是个什么东东呢!
抱歉,这么久才看到你的疑问。我不同意你说maven只是一个构建工具,它的功能所涵盖的范围你可以再仔细研究一下,并且看看ant+ivy是怎么做的。
最后我严重声明,我从来没有认为maven不是构建工具。请你不要玩文字游戏,没意思的。
sorry!本质上没有任何对你不敬之意,也没有玩文字游戏之意。本想听听你给我一些建议!
Maven说是一个构建工具可能不过完整或者精确。因为要完全说Maven是干什么的其实也比较难。它本质是一个空壳,靠的是插件。它是一个构建工具,同时也是一个依赖管理工具还可以是site。所以我个人一般趋向于叫它为构建工具。 20 楼 jiangduxi 2010-08-04 jiangduxi 写道黑暗浪子 写道jiangduxi 写道黑暗浪子 写道jiangduxi 写道吐故纳新 写道小弟对这个不是很懂,不知道理解的对不对,还望多多指教。
Hudson是一个MAVEN命令的管理工具
Hudson并不能说是Maven命令的管理工具。因为他没有管理Maven。Maven只是一个构建工具。它和Hudson的关联在于Maven在Hudson的Config里面进行了配置。按照现在的分层思想,Hudson是前台,它只显示后端传来的数据。操作数据的就是Maven或者Ant。而提供数据则是SVN或者csv
Maven只是一个构建工具??呵呵,看来你自己也没明白
既然Maven你认为不是构建工具。那想听听你的意见。 那你认为Maven是个什么东东呢!
抱歉,这么久才看到你的疑问。我不同意你说maven只是一个构建工具,它的功能所涵盖的范围你可以再仔细研究一下,并且看看ant+ivy是怎么做的。
最后我严重声明,我从来没有认为maven不是构建工具。请你不要玩文字游戏,没意思的。
sorry!本质上没有任何对你不敬之意,也没有玩文字游戏之意。本想听听你给我一些建议!
Maven说是一个构建工具可能不过完整或者精确。因为要完全说Maven是干什么的其实也比较难。它本质是一个空壳,靠的是插件。它是一个构建工具,同时也是一个依赖管理工具还可以是site。所以我个人一般趋向于叫它为构建工具。不过有些人也叫项目管理工具。这个说话有点悬了。
21 楼 黑暗浪子 2010-08-05 jiangduxi 写道jiangduxi 写道黑暗浪子 写道jiangduxi 写道黑暗浪子 写道jiangduxi 写道吐故纳新 写道小弟对这个不是很懂,不知道理解的对不对,还望多多指教。
Hudson是一个MAVEN命令的管理工具
Hudson并不能说是Maven命令的管理工具。因为他没有管理Maven。Maven只是一个构建工具。它和Hudson的关联在于Maven在Hudson的Config里面进行了配置。按照现在的分层思想,Hudson是前台,它只显示后端传来的数据。操作数据的就是Maven或者Ant。而提供数据则是SVN或者csv
Maven只是一个构建工具??呵呵,看来你自己也没明白
既然Maven你认为不是构建工具。那想听听你的意见。 那你认为Maven是个什么东东呢!
抱歉,这么久才看到你的疑问。我不同意你说maven只是一个构建工具,它的功能所涵盖的范围你可以再仔细研究一下,并且看看ant+ivy是怎么做的。
最后我严重声明,我从来没有认为maven不是构建工具。请你不要玩文字游戏,没意思的。
sorry!本质上没有任何对你不敬之意,也没有玩文字游戏之意。本想听听你给我一些建议!
Maven说是一个构建工具可能不过完整或者精确。因为要完全说Maven是干什么的其实也比较难。它本质是一个空壳,靠的是插件。它是一个构建工具,同时也是一个依赖管理工具还可以是site。所以我个人一般趋向于叫它为构建工具。不过有些人也叫项目管理工具。这个说话有点悬了。
既然你这么说,我也没什么好质疑的。不过在这里我想请教你一下我最近碰到的maven问题。那就是在maven结构下的script文件夹,在你实际工作项目中,你是怎么利用放在这个文件夹下的文件。主要是为了实现什么目地?又或者你觉得不用也无可厚非,那么不用的理由又是什么?之所以问这个问题,因为在我看到使用maven的项目中,几乎个个只用java和resource,webapp,但是我就不明白其他几个为什么放在maven里。如果有必要使用的话,是在什么场合和情况下必须要用呢?
22 楼 lovefly_zero 2010-09-25 黑暗浪子 写道jiangduxi 写道jiangduxi 写道黑暗浪子 写道jiangduxi 写道黑暗浪子 写道jiangduxi 写道吐故纳新 写道小弟对这个不是很懂,不知道理解的对不对,还望多多指教。
Hudson是一个MAVEN命令的管理工具
Hudson并不能说是Maven命令的管理工具。因为他没有管理Maven。Maven只是一个构建工具。它和Hudson的关联在于Maven在Hudson的Config里面进行了配置。按照现在的分层思想,Hudson是前台,它只显示后端传来的数据。操作数据的就是Maven或者Ant。而提供数据则是SVN或者csv
Maven只是一个构建工具??呵呵,看来你自己也没明白
既然Maven你认为不是构建工具。那想听听你的意见。 那你认为Maven是个什么东东呢!
抱歉,这么久才看到你的疑问。我不同意你说maven只是一个构建工具,它的功能所涵盖的范围你可以再仔细研究一下,并且看看ant+ivy是怎么做的。
最后我严重声明,我从来没有认为maven不是构建工具。请你不要玩文字游戏,没意思的。
sorry!本质上没有任何对你不敬之意,也没有玩文字游戏之意。本想听听你给我一些建议!
Maven说是一个构建工具可能不过完整或者精确。因为要完全说Maven是干什么的其实也比较难。它本质是一个空壳,靠的是插件。它是一个构建工具,同时也是一个依赖管理工具还可以是site。所以我个人一般趋向于叫它为构建工具。不过有些人也叫项目管理工具。这个说话有点悬了。
既然你这么说,我也没什么好质疑的。不过在这里我想请教你一下我最近碰到的maven问题。那就是在maven结构下的script文件夹,在你实际工作项目中,你是怎么利用放在这个文件夹下的文件。主要是为了实现什么目地?又或者你觉得不用也无可厚非,那么不用的理由又是什么?之所以问这个问题,因为在我看到使用maven的项目中,几乎个个只用java和resource,webapp,但是我就不明白其他几个为什么放在maven里。如果有必要使用的话,是在什么场合和情况下必须要用呢?
其它的诸如images、css、javascript这些文件都是静态文件,如果你不放到webapp下,它又怎么打包成war呢?
再说,有些公共的文件可以直接放在自定义的ArcheType里,这样依赖的项目骨架生成项目,不是很方便嘛? 23 楼 黑暗浪子 2010-09-25 lovefly_zero 写道黑暗浪子 写道jiangduxi 写道jiangduxi 写道黑暗浪子 写道jiangduxi 写道黑暗浪子 写道jiangduxi 写道吐故纳新 写道小弟对这个不是很懂,不知道理解的对不对,还望多多指教。
Hudson是一个MAVEN命令的管理工具
Hudson并不能说是Maven命令的管理工具。因为他没有管理Maven。Maven只是一个构建工具。它和Hudson的关联在于Maven在Hudson的Config里面进行了配置。按照现在的分层思想,Hudson是前台,它只显示后端传来的数据。操作数据的就是Maven或者Ant。而提供数据则是SVN或者csv
Maven只是一个构建工具??呵呵,看来你自己也没明白
既然Maven你认为不是构建工具。那想听听你的意见。 那你认为Maven是个什么东东呢!
抱歉,这么久才看到你的疑问。我不同意你说maven只是一个构建工具,它的功能所涵盖的范围你可以再仔细研究一下,并且看看ant+ivy是怎么做的。
最后我严重声明,我从来没有认为maven不是构建工具。请你不要玩文字游戏,没意思的。
sorry!本质上没有任何对你不敬之意,也没有玩文字游戏之意。本想听听你给我一些建议!
Maven说是一个构建工具可能不过完整或者精确。因为要完全说Maven是干什么的其实也比较难。它本质是一个空壳,靠的是插件。它是一个构建工具,同时也是一个依赖管理工具还可以是site。所以我个人一般趋向于叫它为构建工具。不过有些人也叫项目管理工具。这个说话有点悬了。
既然你这么说,我也没什么好质疑的。不过在这里我想请教你一下我最近碰到的maven问题。那就是在maven结构下的script文件夹,在你实际工作项目中,你是怎么利用放在这个文件夹下的文件。主要是为了实现什么目地?又或者你觉得不用也无可厚非,那么不用的理由又是什么?之所以问这个问题,因为在我看到使用maven的项目中,几乎个个只用java和resource,webapp,但是我就不明白其他几个为什么放在maven里。如果有必要使用的话,是在什么场合和情况下必须要用呢?
其它的诸如images、css、javascript这些文件都是静态文件,如果你不放到webapp下,它又怎么打包成war呢?
再说,有些公共的文件可以直接放在自定义的ArcheType里,这样依赖的项目骨架生成项目,不是很方便嘛?
你说的images等文件夹我也是放在webapp下的,但是我说的scipt文件夹不是它们。你搞错了。