HUDSON邮件模板问题 <众里寻他千百度,蓦然回首,那‘人’却在灯火阑珊处>

原创 2012年03月26日 23:01:06
     【众里寻他千百度,蓦然回首,那‘人’却在灯火阑珊处】

【问题描述】
hudson邮件功能太弱了,项目经理说,能不能换成好看的。
我就在hudson仓库中找了Email-ext+plugin(http://wiki.hudson-ci.org/display/HUDSON/Email-ext+plugin)
一段简单配置后,
配置如下
$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!
Check console output at ${BUILD_URL} to view the results.
${JELLY_SCRIPT, template="html"}
邮件发布来 显示如下图所示:
很明显 URL是错误的。但是${BUILD_URL}显示的是对的。
【为什么?】${BUILD_URL}解析与jelly文件解析是分离的。

看jelly源码

基本可以断定rooturl应该为http://10.20.174.34:8080/hudson,
但是被换成了http://10.20.174.34
【看源码】
 在google几个小时后,自己也纠结几个小时后,直接,果断下源码。
git clone git://github.com/hudson-plugins/email-ext-plugin.git
cd email-ext-plugin
mvn clean install
【插曲】
发现编译不通过,
http://maven.glassfish.org/仓库登陆不上,怀疑被墙,后弄代理发现此服务已经停止。后在pom.xml直接覆盖父pom.xml的仓库配置,把http://maven.glassfish.org/设置成不可用。
编译通过,(此事情有点奇怪,我也不纠结了。再往下看。不过hudson所用仓库如此不稳定,令人费解啊)
【远程调试】
    不知道为什么,远程调试就是不成功。难道是hudson上的email-ext是2.10版本,我本地代码是2.12版本,我看了相关的资料,未果,这个问题,过几天看下,现在解决问题要紧。

那就直接看源码吧,在eclipse中搜索rooturl,
有如下的代码:
private JellyContext createContext( Object it, AbstractBuild<?, ?> build )
    {
        JellyContext context = new JellyContext();
        context.setVariable( "it", it );
        context.setVariable( "build", build );
        context.setVariable( "project", build.getParent() );
        context.setVariable( "rooturl", ExtendedEmailPublisher.DESCRIPTOR.getHudsonUrl() );
        return context;
    }
主要是ExtendedEmailPublisher.DESCRIPTOR.getHudsonUrl() ,
再查找 在ExtendedEmailPublisherDescriptor中找到如下代码:
 public boolean configure( StaplerRequest req, JSONObject formData )
        throws FormException
    {
        // Most of this stuff is the same as the built-in email publisher

        // Configure the smtp server
        smtpHost = nullify( req.getParameter( "ext_mailer_smtp_server" ) );
        adminAddress = req.getParameter( "ext_mailer_admin_address" );
        defaultSuffix = nullify( req.getParameter( "ext_mailer_default_suffix" ) );

        // Specify the url to this hudson instance
        String url = nullify( req.getParameter( "ext_mailer_hudson_url" ) );
        if ( url != null && !url.endsWith( "/" ) )
        {
            url += '/';
        }
        if ( url == null )
        {
            url = Hudson.getInstance().getRootUrl();
        }
        hudsonUrl = url;

        // specify authentication information
        if ( req.getParameter( "extmailer.useSMTPAuth" ) != null )
        {
            smtpAuthUsername = nullify( req.getParameter( "extmailer.SMTPAuth.userName" ) );
            smtpAuthPassword = Secret.fromString( nullify( req.getParameter( "extmailer.SMTPAuth.password" ) ) );
        }
        else
        {
            smtpAuthUsername = null;
            smtpAuthPassword = null;
        }
......省去一万个字
    }
   推测出ext_mailer_hudson_url应该就是页面配置的。再在hudson配置的Extended E-mail Notification看出了,原来在Override Global Settings没有勾上的情况下,Hudson URL为http://10.20.174.34。后我直接覆盖了《邮件通知》插件的配置,自定义了相关配置,后检测没有问题。
如下图所示:

【感触】
我花了6个小时左右查找的问题居然是配置错误,比较纠结。如此简单的配置错误,为什么花我6个小时。我应该想到 google中没有人说这个问题,大致就是配置的问题,应该认真检查配置。但是我先入为主认为配置没有问题。(最关键一点就是 ${BUILD_URL}是正确的误导了我 )。
此插件开发者,还是不应该令同一个BUILD_URL在不同的地方有不同的含义的,此会让开发者很费解的。
其实这些问题,经常发生在我们的业务项目中,我们经常不注意,造成我们业务项目大量的技术债务。

在以后遇到类似的问题,先想下在哪里会出现问题,一般最后还是要下载源码解决。
已经花费了我6个小时,也不在乎再花半个小时把此问题描述下。希望以后查问题,能顺利点。




转载:HUDSON邮件模板问题 <众里寻他千百度,蓦然回首,那‘人’却在灯火阑珊处>

转载:http://blog.csdn.net/bxyz1203/article/details/7397078      【众里寻他千百度,蓦然回首,那‘人’却在灯火阑珊处】 【...
  • huguangshanse00
  • huguangshanse00
  • 2013年11月10日 20:36
  • 1112

众里寻他千百度,蓦然回首,那人却在灯火阑珊处

好在找到了一个库作三层架构的;众里寻他千百度,蓦然回首,那人却在灯火阑珊处要作就要作企业级的系统,要学就学好的范例;微软的petshop的架构;看来我要好好学习啊,等着天天向上啊!//========...
  • msnetc
  • msnetc
  • 2006年05月24日 12:31
  • 1533

众里寻 Bug 千百度,蓦然回首,它却在隔壁老张处……

点击上方“程序人生”,选择“置顶公众号”第一时间关注程序猿(媛)身边的故事程序员与 Bug 是一对矛盾的存在,程序员既要在解决 Bug 中获得成就感,同时也讨厌 Bug 本身的存在。“程序不息,Bug...
  • csdnsevenn
  • csdnsevenn
  • 2017年12月19日 00:00
  • 155

众里寻他千百度,蓦然回首,那人却在。。。

第一个项目终于完成了,做的很辛苦,每天都要凌晨好几点才能睡觉,有时鼻血不经意间就流淌出来了,兄弟们,有木有?有木有?最大的感受就是:思路决定出路。做某个模块之前,我会在笔记本上写好思路,敲代码就看着写...
  • u011886490
  • u011886490
  • 2013年08月30日 14:59
  • 616

众里寻他千百度,蓦然回首,那人却在。。。。。

第一个项目终于完成了,做的很辛苦,每天都要凌晨好几点才能睡觉,有时鼻血不经意间就流淌出来了,兄弟们,有木有?有木有?最大的感受就是:思路决定出路。做某个模块之前,我会在笔记本上写好思路,敲代码就看着写...
  • u011886490
  • u011886490
  • 2013年08月30日 14:59
  • 322

众里寻他千百度

机房收费系统是自学生信息系统之后的又一完整的系统,但是不同的是:学生信息系统有源码,还有现成的数据库,只要直接连接,然后照着敲就可以了;但是机房收费系统却只有一个应用程序,虽然也给了数据库,但是那只是...
  • u010927139
  • u010927139
  • 2013年09月26日 17:26
  • 1464

basename()—众里寻他千百度,那人却在linux函数库

这是一桩因不熟悉linux函数引发的惨案,容我吃口热翔后为大家细细道来:      我想在linux上用C借助socket实现一个文件传输的软件,输入文件的目录后将该文件从客户端发送到服务器,包括该文...
  • u012520551
  • u012520551
  • 2015年08月07日 23:04
  • 845

众里寻他千百度之字符集

字符,字节和编码[原创文章出处:http://www.regexlab.com/zh/encoding.htm]级别:中级摘要:本文介绍了字符与编码的发展过程,相关概念的正确理解。举例说明了一些实际应...
  • feixie1225
  • feixie1225
  • 2007年02月06日 15:55
  • 729

腾讯offer-众里寻他千百度

腾讯offer      2012-04-25 15:40   收到腾讯HR电话,告知已获offer。          感谢!...
  • Jiangweihll
  • Jiangweihll
  • 2014年04月25日 15:48
  • 5776

视觉世界中的“众里寻她”--开放环境下的人物特征表示

编者按:辛弃疾在《青玉案.元夕》中曾这样写道,“众里寻她千百度,蓦然回首,那人却在,灯火阑珊处。”其实在视觉理解领域,这半阙词,描绘的即是,在熙熙攘攘的视觉世界中,通过剥离场景,只关注所关心的那个她的...
  • XWUkefr2tnh4
  • XWUkefr2tnh4
  • 2018年02月07日 00:00
  • 10
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HUDSON邮件模板问题 <众里寻他千百度,蓦然回首,那‘人’却在灯火阑珊处>
举报原因:
原因补充:

(最多只允许输入30个字)