`
jiangduxi
  • 浏览: 444522 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
阅读更多
  通过对炒持续集成这道菜的一些留言发现部分朋友没有真正理解这道菜的真谛。
  现在我将我对这道菜的理解进行一些总结.
  下面先看看一张简易关系图(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的理解

分享到:
评论
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文件夹不是它们。你搞错了。
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里,这样依赖的项目骨架生成项目,不是很方便嘛?
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里。如果有必要使用的话,是在什么场合和情况下必须要用呢?
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。所以我个人一般趋向于叫它为构建工具。不过有些人也叫项目管理工具。这个说话有点悬了。

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。所以我个人一般趋向于叫它为构建工具。
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不是构建工具。请你不要玩文字游戏,没意思的。
17 楼 jiangduxi 2010-07-30  
黑暗浪子 写道
jiangduxi 写道
吐故纳新 写道
小弟对这个不是很懂,不知道理解的对不对,还望多多指教。
Hudson是一个MAVEN命令的管理工具

Hudson并不能说是Maven命令的管理工具。因为他没有管理Maven。Maven只是一个构建工具。它和Hudson的关联在于Maven在Hudson的Config里面进行了配置。按照现在的分层思想,Hudson是前台,它只显示后端传来的数据。操作数据的就是Maven或者Ant。而提供数据则是SVN或者csv

Maven只是一个构建工具??呵呵,看来你自己也没明白


既然Maven你认为不是构建工具。那想听听你的意见。 那你认为Maven是个什么东东呢!
16 楼 shingo7 2010-07-30  
用CruiseControl(也就是常说的CC) 来做集成已经有很多示例子
google一下会有很多

持续集成,说白了就是按照指定的时间规则从代码库中down下代码,然后用ant或maven命令编绎打包生成成果(jar,war或第三方格式的包) ,然后持续集成的工具会提供界面将编绎打包的日志展现出来。 
15 楼 黑暗浪子 2010-07-29  
<div class="quote_title">cutesource 写道</div>
<div class="quote_div">
<p>最近在项目里成功尝试了持续化集成,有些经验可以和大家分享,有兴趣可以参见我的博文:</p>
<p><span style="font-size: medium;"><a href="http://blog.csdn.net/cutesource/archive/2010/07/28/5772346.aspx" target="_blank">基于maven和hudson打造持续集成环境</a></span></p>
</div>
<p>配合你一下</p>
<p>http://darkranger.iteye.com/blog/611118</p>
<p> </p>
14 楼 黑暗浪子 2010-07-29  
jiangduxi 写道
吐故纳新 写道
小弟对这个不是很懂,不知道理解的对不对,还望多多指教。
Hudson是一个MAVEN命令的管理工具

Hudson并不能说是Maven命令的管理工具。因为他没有管理Maven。Maven只是一个构建工具。它和Hudson的关联在于Maven在Hudson的Config里面进行了配置。按照现在的分层思想,Hudson是前台,它只显示后端传来的数据。操作数据的就是Maven或者Ant。而提供数据则是SVN或者csv

Maven只是一个构建工具??呵呵,看来你自己也没明白
13 楼 cutesource 2010-07-28  
<p>最近在项目里成功尝试了持续化集成,有些经验可以和大家分享,有兴趣可以参见我的博文:</p>
<p><span style="font-size: medium;"><a href="http://blog.csdn.net/cutesource/archive/2010/07/28/5772346.aspx" target="_blank">基于maven和hudson打造持续集成环境</a></span></p>
12 楼 mercyblitz 2010-07-28  
jiangduxi 写道
mercyblitz 写道
jiangduxi 写道
吐故纳新 写道
小弟对这个不是很懂,不知道理解的对不对,还望多多指教。
Hudson是一个MAVEN命令的管理工具

Hudson并不能说是Maven命令的管理工具。因为他没有管理Maven。Maven只是一个构建工具。它和Hudson的关联在于Maven在Hudson的Config里面进行了配置。按照现在的分层思想,Hudson是前台,它只显示后端传来的数据。操作数据的就是Maven或者Ant。而提供数据则是SVN或者csv



  我认为,“吐故纳新”没有说错。Hudson利用插件形式来扩张引用,它是一个很好的"命令"模式的体现。Hudson通过自己的协议,调用第三方的接口,比如Maven等。Hudson相当于一个大管家,简化(图形化)和统一了部署、发布等操作。

按你的理解角度来说Hudson是管理了Maven。不过我不是怎么理解的。


如果说“管理”来形容比较过的话,哪么用“合作”形容应该不难接受的。
11 楼 nishijia 2010-07-27  
不可否认 hudson 是一款很不错的持续集成的工具
Hudson 要比Cruise Control简单的多 界面上输入就可以了
它会写入config.xml里面的

网上关于hudson的配置有很多 搜一搜就有了
10 楼 lihuachuan 2010-07-27  
建议楼主把详细过程写出来
9 楼 jiangduxi 2010-07-27  
mercyblitz 写道
jiangduxi 写道
吐故纳新 写道
小弟对这个不是很懂,不知道理解的对不对,还望多多指教。
Hudson是一个MAVEN命令的管理工具

Hudson并不能说是Maven命令的管理工具。因为他没有管理Maven。Maven只是一个构建工具。它和Hudson的关联在于Maven在Hudson的Config里面进行了配置。按照现在的分层思想,Hudson是前台,它只显示后端传来的数据。操作数据的就是Maven或者Ant。而提供数据则是SVN或者csv



  我认为,“吐故纳新”没有说错。Hudson利用插件形式来扩张引用,它是一个很好的"命令"模式的体现。Hudson通过自己的协议,调用第三方的接口,比如Maven等。Hudson相当于一个大管家,简化(图形化)和统一了部署、发布等操作。

按你的理解角度来说Hudson是管理了Maven。不过我不是怎么理解的。
8 楼 jiangduxi 2010-07-27  
huangbocom 写道
Hudson类似于Cruise Control。楼主能否给一个小例子,大家来研究一下

你好!如果有时间,我将发帖给出完整的一个项目使用Hudson+ Maven+SVN+Snoar的实例!如果中途有什么具体问题,也可以直接在该贴上进行讨论!
7 楼 mercyblitz 2010-07-27  
jiangduxi 写道
吐故纳新 写道
小弟对这个不是很懂,不知道理解的对不对,还望多多指教。
Hudson是一个MAVEN命令的管理工具

Hudson并不能说是Maven命令的管理工具。因为他没有管理Maven。Maven只是一个构建工具。它和Hudson的关联在于Maven在Hudson的Config里面进行了配置。按照现在的分层思想,Hudson是前台,它只显示后端传来的数据。操作数据的就是Maven或者Ant。而提供数据则是SVN或者csv



  我认为,“吐故纳新”没有说错。Hudson利用插件形式来扩张引用,它是一个很好的"命令"模式的体现。Hudson通过自己的协议,调用第三方的接口,比如Maven等。Hudson相当于一个大管家,简化(图形化)和统一了部署、发布等操作。
6 楼 wjm251 2010-07-27  
Hudson--Cruise Control--luntbuild

ant--maven

svn--cvs--Visual Source Safe-clearcase--git
5 楼 huangbocom 2010-07-27  
Hudson类似于Cruise Control。楼主能否给一个小例子,大家来研究一下
4 楼 fire01312 2010-07-27  
我近期 正在开发一款持续集成工具。 不过是用于c++领域的。


后续可能集成java

相关推荐

Global site tag (gtag.js) - Google Analytics