增量发布项目时容易掉进的陷阱!!(分享贴)
今天在做项目更新时,发现了一个很容易忽略,也很难发觉的问题!
当我们改了工程里面的常量时,必须把引用到这个常量的所有类都重新编译发布,因为java的机制时,在编译时是把常量写到字节码里的。所以如果公共类里面的常量值变化了,必须把引用到该常量的类重编译
例如:
PlCommon.java
public class PlCommon {
public static final String A = "1"
}
XxxAction.java
public class XxxAction{
public String getXxx{
return PlCommon.A;
}
}
当修改了PlCommon.java
public class PlCommon {
public static final String A = "2"
}
如果不重新编译XxxAction.java,会发现getXxx得到的值还是"1";因为常量不是动态引用的,
是编译期就定了的。这里就可以会导致难以看出的错误!!
在此分享只希望各位同行在做项目增量发布时多多注意!少走弯路!