标签归档:plugin

Maven Tips

Nexus

使用本地代理仓库

Nexus配置好后会默认有一个Maven Central仓库的Proxy,将自己的项目配置成使用代理

将插件仓库也配置成使用本地代理

调整Nexus缓存时间

由于国内访问Maven仓库很卡,容易发生网络故障导致Nexus缓存了未找到记录,可在Nexus后台将对应仓库的Not Found Cache TTL改成一个较短的值(例如5分钟)

为不同的开发环境创建不同的仓库

通常一个项目在不同的环境下存在不同的版本,本文创建dev、qa、production三个仓库并演示如何通过变量来选择使用哪个仓库

使用变量

使用不同的profile定制变量

以下配置声明了dev、qa、production三个profile,并分别定义了branch和skipTest两个变量,且将dev置为默认激活的profile:

命令行可通过-P参数来指定使用不同的profile,例如:

通过变量声明仓库

在Central仓库基础上加入

禁用仓库中Snapshot版本的唯一版本号

发布

配置deploy仓库

以配置snapshotRepository为例:

配置deploy账号

编辑文件:

文件内容如下:

常规发布

通过前两处配置,已经可以正常发布:

跳过发布

通常对于J2EE的WAR项目,只需要编译打包,而不需要将WAR文件发布到仓库中,通过配置maven-deploy-plugin跳过发布环节:

打包额外的jar

通过maven-jar-plugin可以在项目中打包出更多的自定义jar包:

可通过配置多个execution并为其指定不同的id来打出更多的jar

注意:此方式打出的jar不会在deploy时发布到仓库中,而通过classfier方式打出的jar会发布,请注意此区别

以上两种方式在编译期都可以做到在target目录输出jar包的效果

发布额外打包的jar并指定自定义POM

以下配置将当前构建跳过发布,并打包额外的jar,然后为这个jar指定自定义的POM信息后上传至指定仓库:

包含空目录

Maven构建时会自动忽略空目录,以下插件配置可将空目录保留:

Firefox plugin:Google Browser Sync

在LinuxApp@水木社区上一个讨论Linux/Windows之间书签同步的帖子里看见的这个插件,于是装上试用。

插件地址:http://www.google.com/tools/firefox/browsersync/index.html

安装后重新启动会自动运行设置向导,根据说明可以同步书签、历史、打开的标签或窗口,甚至是保存的Cookies和密码都可以同步。对于Cookies和密码这样的隐私数据,可以设置一个PIN码对其进行加密,此PIN码不会保存在Google服务器上

在不同的机器上或者不同配置的Firefox之间同步时,只需要同样安装此插件即可(实际使用效果不错,删除操作也能同步过来~)。

当然,使用此插件的前提是需要拥有Google账号,现在这好像不是什么难事。

如果只是需要同步书签,更简单的解决办法是使用GMarks插件,同样利用了Google的服务,万能的狗狗啊……

google_browser_sync.JPG

大伙来算术

好吧,我是标题党……

更新了一个插件:Challenge,就是把随机验证码改成算术了,现在Spam的图像识别能力相当不错,每天都有很多漏网之鱼,不知道这个算术的好不好使~

更新:先撤掉了,和WP-Cache配合有问题,回头把它改成用图像输出的,结合验证码图片的应该就可以了。

更新:查看此文

Get Recent Comments 中文改良版

注意:转载本文请说明出处,谴责赤裸裸的剽窃行为!

正式弃用了中文工具箱,采用Get Recent Comments插件来显示最新评论。

这个插件可以在后台设置在每隔多少长度插入一个空格来防止因为评论过长破坏页面布局,但是因为中文问题原版插件在插入空格时可能插入到一个中文字符的中间从而导致乱码问题,这里提供一个自己改良了的版本。

原版插件默认使用的是空格来插入评论达到换行的目的,我换成了<wbr />(软换行标签,表示此处可换行)。好处是评论显示时都是连续的而不会产生多余的空格,可能存在的问题是此标签不被某些浏览器所支持,根据需要自己修改一下参数即可。

调用方法:

Recent Comments


下载:
Get Recent Comments(based on v2.0.2, for WP 2.3 and later version)
更新日志:
2007-09-26 作者很勤快,我也勤快点,更新至v2.0.2,增加包含/不包含分类的选项设置
2007-09-25 基于原版2.0修改适应WordPress 2.3的最新版本,节约数据库开销,修复若干bug,推荐更新

下载:
Get Recent Comments(based on v1.5.5, for WP 2.2 and earlier version)
更新日志:
更新1:修改了执行utf8_wordwrap的顺序,先截取摘要再插入标签,解决截断标签的问题和因为插入标签影响截取长度的问题。

更新2:有时候最新评论并不马上出现,这是因为使用了cache的原因,对于我这样已经使用了WP_Cache插件的用户来说并无意义,最简单的更改方法是搜索“$use_cache = TRUE;”,将TRUE改为FALSE并保存。

更新3@2007-05-01:删除一句可能导致程序执行错误的语句,不明白原作者的意图

更新4@2007-05-27:修复由于插件调用WP的wptexturize函数导致的乱码问题,改为先截取以后再执行wptexturize

更新6@2007-08-09:完全解决末尾半个字符的问题

更新7@2007-08-10:修正一个以前的错误逻辑,可能导致插入过多的无效标签

更改方法:


function utf8_trim($str) {

$len = strlen($str);

for ($i=strlen($str)-1; $i>=0; $i-=1){
$hex .= ‘ ‘.ord($str[$i]);
$ch = ord($str[$i]);
if (($ch & 128)==0) return(substr($str,0,$i));
if (($ch & 192)==192) return(substr($str,0,$i));
}
return($str.$hex);
}

function utf8_substr($str, $len) {
$slen = strlen($str);
for ($i = 0; $i < $len && $i < $slen; $i++) { $temp_str = substr($str, 0, 1); if (ord($temp_str) > 127) {
$i ++;
if ($i < $len) { $new_str[] = substr($str, 0 ,3); $str = substr($str, 3); } } else { $new_str[] = substr($str, 0 ,1); $str = substr($str, 1); } } return join('', $new_str); } function utf8_wordwrap($instr, $width, $s = '‘) {
$outstr = ”;

do {
$len = strlen($instr);
if (strlen($instr) > $width) {
$tmpstr = utf8_substr($instr, $width);
$outstr .= $tmpstr;
$outstr .= $s;
} else {
$tmpstr = $instr;
$outstr .= $tmpstr;
}
$instr = substr($instr, strlen($tmpstr), $len);
} while (strlen($instr) > 0);

return $outstr;
}