2009-10-29 76 views
0

我有一个根本没有打包的现有代码库。与从Java中的默认包更改相关的风险?

代码库是所有旨在扩展/增强第三方程序功能的次要Java程序。当前进程每个类一个jar,每个文件一个类,没有包。

我想分解代码库,所以每个jar文件也是一个包;这简化了我在Eclipse中的jar过程。

有没有与此相关的风险我需要注意?

回答

4

唯一的风险是显式(或更可能的,隐式)包定义过期。

例如,所有的Java文件的,因为他们是在同一个包,将不再需要进口对方。迁移之后,他们需要使用其他包中类的完全限定名称,或者导入它们。几乎可以肯定需要更新为完全限定的名称(例如“com.company.package。”)。类似地,类名出现在任何地方(例如,在Spring配置文件中,可能是用于命名类的属性文件)。 MyClass“而不是”MyClass“)。

这是后者,可能是最麻烦的;只要你有一个良好的构建过程,并确保你从头开始构建,任何Java错误应该在编译阶段被捕获(除非你在源代码中使用像Class.forName("MyClass")这样的奇怪东西)。但是,配置文件问题在运行时会出现,如果没有整理出来的话 - 那么,通常当它们即将被使用时。如果一个很少使用的特性有一个引用你的类的Spring配置,并且你忘记修改它,那么在它失败之前你不会发现它。

加方 - 体面的IDE将有一个“重命名”或“改变包”重构,这应该是能够找到的文字类的名字出现次数太多的文件。

0

我不知道我完全理解你正在尝试做的,但如果你正在寻找为您创造类的,其中今天没有这样的包(一个或多个),那么只需要知道,有些方法可能不再可见如果他们被包装保护。

0

把所有的类拆分成包(包括任何属性文件等),并创建一个从那个包一个罐子,那么你可以随时包括通过持续做的项目是在你的Eclipse项目是jar文件建立选项,包括它作为一个外部的jar文件,然后只需要将你需要的特定类/类导入到项目中,就完成了。

只要你包括那些类需要到最终包装/罐的所有资源,他们将同样的方式工作,因为他们没有出现,但它们将非常非常容易使用等项目。

0

当您移动类到不同的包或重命名使用Eclipse包,Eclipse是足够聪明,查找和更改所有引用为好。一次全部。试一试。