作者:江南白衣 

   有个地方恰似美好未来,就是被赶鸭子上架的 SpringSide了。
   比起近亲结婚的公司团队,加入一个南拳北腿的开源项目有更多意外的收获。本来想写一篇《那些男孩教我的事》,但想起这个题目的来自蔡康永的书名,心里一阵发寒,还是算了。

   1.UTF-8

   UTF-8是在Charlse和Robbin胁迫下改的,原来和大家一样用的是GBK。后来证明,那两个小时转码努力非常值。

   编码问题几乎与所有国内Java项目相伴而生,不同内核的Linux、英文版日文版的WindowsXP总是让GBK很头痛,改用UTF-8后,忽然就天青云淡了,UTF-8,全世界语系连马尔代夫语都有自己的座位,实在找不到理由为什么还要用只支持大中华的GBK。

    IDEA,Eclipse等主流IDE都可以设置编码为UTF-8后直接编辑,关键是开始时怎么把做到一半的项目转为UTF-8。
    其实把自己当成车衣厂女工,机械的使用UltraEdit和EditPlus的转换功能,忙活一两个小时,怎么都可以转完所有文件了。

  其中UltraEdit的转换方法是文件-->转换-->ASCII to UTF-8(Unicode编辑),最好在Advanced-->本地代码页那里也设一下UTF-8。

2.Subversion

   Subversion是因为cac的示范,加上sf的cvs问题多多而试用的.用后觉得的确更适合J2EE时代的项目。所以apache老早就在使用,而Sourceforge新新开始支持且可以从cvs一键切换。

   他的好处首页上已经列明了,不过他的表达不佳,我的英文也不堪,所以很多好处是用了之后才体会得到。

基础读物:那份因为有过八卦而比较有名的《用Subversion进行版本控制》

1. 对空目录,无论要留要删,都比only file base 的CVS好。

2. 可以改名,对于喜欢重构的同志比较有用,rename后仍然可以方便的比较版本间异同,也保留了所有commit信息。

3. 把每次提交捆绑在一起,日后查记录时能看到同时提交的文件。对于一次提交一个issue相关文件的同学来讲,这是个很实用的功能。Web应用和桌面应用比,就是分层N多,一个改动总要改N个源码+配置文件,现在能绑在一起挺不错。

4. 用简单的目录概念代替了复杂的分支与标签,而且使用映射,使得开分支作备份之类的不用把数据重新传一次,成本好低。

其余的优点大家自用自察了,比如小海龟写提交注释时居然有文件名auto complete,二进制文件也是只update差异,不update全部等等。

可惜ant里还没有subversion的task,所以Ant里如果要跑svn相关的任务,只能用javasvn,近乎命令行的方式进行,见SpringSide build.xml里的svn-export target。

3. Maven2

    maven2是pesome的怂恿,appfuse equinox的示范,再加上服务器的确不堪无数次重复下载依赖jar的结果。
  
    篇幅较长,另开一篇:做环保主义者,用Maven2 管理Java类库